Quick answer: Export your active listings from Etsy, convert that file to WooCommerce’s product schema, then go to Products → All Products → Import in WordPress. Review the automatic column mapping, run the importer, and check every draft before publishing.
Before you import
- Back up the WooCommerce store and use staging for an established shop.
- Confirm the store currency under WooCommerce settings. Currency is a store-wide setting, not a per-row CSV instruction.
- Import a small batch first if you have a large catalog.
- Keep your original Etsy export unchanged.
- Plan to review products as drafts before making them public.
WooCommerce’s official importer documentation also recommends backing up, testing on staging, and splitting large catalogs into smaller batches.
1. Convert the Etsy listing export
Etsy and WooCommerce use different column names and assumptions. Renaming headers manually is not enough: prices need a compatible numeric format, images must be combined, stock values need validation, and WooCommerce status values must be explicit.
- Download your active-listings CSV
Follow the Etsy export guide if you do not already have it.
- Choose the file in CraftPorter
The file is parsed and transformed locally in your browser.
- Review the preview and warnings
Pay special attention to variations, missing SKUs, image URLs, quantities, and currency.
- Download both files
Keep the WooCommerce CSV and its conversion report together for review.
2. Upload the converted CSV to WooCommerce
- Open Products → All Products
Select Import near the top of the Products screen.
- Choose the CraftPorter output file
Upload the file whose name ends in
-woocommerce.csv. Do not select “Update existing products” for a first-time migration. - Continue to column mapping
WooCommerce should recognize CraftPorter’s standard headers automatically. Scan every row before proceeding.
- Run the importer
Wait for it to finish without refreshing or navigating away.
This follows the current process in WooCommerce’s official “Add new products” instructions.
3. Check the column mapping
CraftPorter emits recognized core columns, so WooCommerce should map them without custom code. The important mappings include:
| WooCommerce column | What to verify |
|---|---|
| Type | Simple |
| SKU | Unique value or blank warning |
| Name | Etsy title |
| Published | -1, which means draft |
| Description | Full Etsy description |
| Regular price | Numeric amount, with currency checked separately |
| Stock / In stock? | Validated Etsy quantity |
| Tags | Etsy tags |
| Images | Public Etsy image URLs, first image featured |
If a header appears as “Do not import,” stop and confirm that you selected the converted file. WooCommerce says unrecognized columns are ignored by default.
4. Let WooCommerce retrieve the images
WooCommerce’s core importer accepts directly accessible external image URLs and downloads them into the Media Library. The first URL becomes the featured image; later URLs form the gallery.
Remote Etsy image URLs may change or stop working. Import soon after exporting, then verify that every featured and gallery image was copied into your own WordPress Media Library.
See the official WooCommerce image-import requirements. The core importer cannot set image alt text, so add that during review.
5. Review every imported draft
A successful import means WooCommerce accepted the rows; it does not mean the products are ready to sell. Open the imported Products list and verify:
- Product name, long description, and formatting
- Regular price in the store’s currency
- SKU uniqueness, stock quantity, and stock status
- Featured image and complete image gallery
- Tags, Materials attribute, and newly assigned categories
- Shipping weight, dimensions, class, tax status, and tax class
- Any variation options, prices, inventory, and photos rebuilt manually
- Permalink, excerpt, accessibility text, and on-site search appearance
Common import problems
Products were skipped
Look for duplicate SKUs or IDs and check the importer log. Do not enable “Update existing products” unless you intend to change matching products.
Images are missing
Check that the image URLs are still directly accessible and that your server can make outbound requests. Re-export and reconvert if the Etsy URLs are stale.
Prices use the wrong currency
Change the WooCommerce store currency before publishing. The CSV carries numeric prices; WooCommerce applies the store-wide currency.
Variations imported as simple products
That is intentional. Etsy’s listing export cannot reliably recreate every variation row. Use the conversion report to find affected listings and rebuild them manually.