21+ years in hosting · Jaipur, India · INR billing with 18% GST · 24/7 email support
Blog · WebJi® India

Import products to WooCommerce from a CSV

Quick answer

To import products into WooCommerce from a CSV, open Products → All Products → Import, choose a UTF-8 CSV that uses WooCommerce's column names, map the columns and click Run the importer. Write prices as plain numbers, give every product a unique SKU, and use direct image URLs. Test three rows before the full file.

For WooCommerce store owners loading a new catalogue, a supplier price list or bulk price and stock updates.

✓ In business since 2005
✓ INR + GST billing
✓ 24/7 Email Support — avg reply < 60 min
GuideWebJi®
knowledge
Read time
6 min
Sections
7
Updated
14 Nov 2026
Written by
WebJi® team

Where the WooCommerce product importer is

WooCommerce has a built-in CSV importer under Products → All Products → Import, so a standard catalogue needs no extra plugin. The Export button beside it writes your current products to a CSV, and that export is also the best template for the column names WooCommerce expects.

  • Import: creates new products, or updates existing ones matched by ID or SKU when "Update existing products" is ticked.
  • Export first: on a store that already has products, export before every import so you can restore names, prices and SKUs.
  • Not a backup: a product CSV does not include orders, customers or the image files themselves.

How to format the product CSV

Save the file as CSV in UTF-8, use WooCommerce's own column headers, write prices as plain numbers, and use 1/0 for yes/no fields. Excel's plain "CSV" option can change the encoding and break Hindi or other non-Latin product names; choose "CSV UTF-8" instead.

Type,SKU,Name,Published,Visibility in catalog,Regular price,Sale price,Categories,Images,Tax class,In stock?,Stock
simple,KURTA-BLU-M,Blue Cotton Kurta,1,visible,1299,999,"Clothing > Women",https://www.example.in/media/kurta-blue.jpg,,1,25
simple,MUG-STEEL-01,Steel Travel Mug,1,visible,549,,"Kitchen, Gifts",https://www.example.in/media/mug-1.jpg,,1,60
Key columns and what to enter
ColumnWhat to enterExample
Typesimple, variable, variation, grouped or externalsimple
SKUUnique code; used to match rows in later updatesKURTA-BLU-M
Published1 published, 0 private, -1 draft1
Regular price / Sale priceNumbers only, no ₹ sign or thousands separator1299
CategoriesParent > Child; separate several with commasClothing > Women
ImagesFull URLs, first is featured, rest become the galleryhttps://…/kurta-blue.jpg
Visibility in catalogvisible, catalog, search or hiddenvisible
Tax classThe tax class name you created for a GST rate; blank uses Standardgst-12

Leave the ID column out for new products; WooCommerce assigns IDs. Categories are created automatically if they do not exist. Extra data such as an HSN code can go in a column named Meta: _hsn_code (use the meta key your GST invoice plugin reads); GST invoices in WooCommerce explains which fields matter.

How to run the import and check it worked

Test with three rows first, then import the full file, stay on the screen until the importer finishes, and check one product in the admin and on the shop.

  1. Export the current products if the store is not empty.
  2. Open Products → All Products → Import and choose the CSV.
  3. Tick Update existing products only if the file should change products that already exist.
  4. Click Continue, check the column mapping, and set unwanted columns to "Do not import".
  5. Click Run the importer and do not refresh or close the tab.
  6. Read the summary (imported, updated, skipped, failed), then open one new product and its shop page.

If WordPress rejects the upload as an unsupported file type, upload the CSV to wp-content/uploads with the hosting file manager and use the importer's advanced option to choose a file already on the server.

Getting product images in through the CSV

Each Images URL must be a direct, publicly reachable link to a JPG, PNG or WebP that WooCommerce can download during the import; the first URL becomes the featured image and the rest the gallery.

  • Use direct file links, not Google Drive or Dropbox share pages, which return HTML instead of an image.
  • Upload images to the Media Library first and use their URLs to avoid timeouts on large catalogues.
  • Large images slow the import; resize to a sensible width and compress before uploading, as covered in converting WordPress images to WebP.
  • The core importer does not set image alt text; add it afterwards in the Media Library.

Importing variable products and their variations

A variable product is one parent row plus one row per variation: the parent lists all attribute values, and each variation row has Type variation, its own SKU and price, and a Parent column containing the parent's SKU.

Type,SKU,Name,Parent,Regular price,Attribute 1 name,Attribute 1 value(s),Attribute 1 visible,Attribute 1 global
variable,TEE-LOGO,Logo T-shirt,,,Size,"S, M, L",1,1
variation,TEE-LOGO-S,,TEE-LOGO,499,Size,S,,1
variation,TEE-LOGO-M,,TEE-LOGO,499,Size,M,,1
variation,TEE-LOGO-L,,TEE-LOGO,549,Size,L,,1

Keep the parent row above its variations in the file. After importing, open the parent's Variations tab and check each price and stock level. Creating one by hand is covered in creating a variable product.

When the file is too large or the import stops halfway

The maximum upload size and how long one request may run are server limits, so split large catalogues into files of a few hundred to a couple of thousand rows and import them in order.

Common import problems and fixes
SymptomLikely causeFix
Rows skippedSKU or ID already exists and "Update existing" was offTick the update option, or change the SKUs
Garbled characters (é, ???)File not saved as UTF-8Re-save as CSV UTF-8
Prices blank₹ sign or commas in the priceUse plain numbers like 1299
Images missingShare-page links or blocked downloadsUse direct URLs or Media Library files
Import stops halfwayMemory or execution time limitSplit the file; ask the host to review limits

Server sizing for bigger catalogues is in WooCommerce hosting requirements. On WebJi® WooCommerce hosting, email support@webji.services with the error, the file size and the maximum shown on the upload screen; support replies 24/7 in Hindi and English.

FAQ

Frequently asked questions

Can I update only prices or stock with a CSV?

Yes. Make a CSV with just SKU plus the columns you want to change, such as Regular price or Stock, tick "Update existing products", and map only those columns. Other fields stay as they are. Export first so you can reverse a mistake.

Can I import products from a supplier's Excel sheet?

Yes, after reshaping it. Rename the supplier's headers to WooCommerce's column names, remove currency symbols and merged cells, save as CSV UTF-8, and test three rows. If the supplier's format changes often, a dedicated import plugin with saved mappings can save time.

Does the CSV import duplicate products if I run it twice?

With SKUs present and "Update existing products" ticked, the second run updates the same products. Without SKUs or with the box unticked, rows can be skipped or duplicated, so always give every product a unique SKU.

How do I move all products from another WooCommerce store?

Export products from the old store and import the CSV into the new one; image URLs pointing at the old site must still work during import. For a whole store with orders and customers, migrate the site instead, as described in migrating a WordPress site.

Checked 15 November 2026 against WooCommerce's product CSV importer documentation · Reviewed by the WebJi® team, Jaipur.

WebJi® since 2005

Ready to get started with WebJi®?

Join 12,000+ businesses across India and overseas. INR pricing, 18% GST shown before payment and 24/7 email support in Hindi and English — average first reply under 60 minutes.