WooCommerce-to-Shopify CSV field mapping and supported fields
Content and sources reviewed:
This page shows the exact field mapping used by CatalogHandoff to convert supported WooCommerce product exports into Shopify product CSV files. Every automatic rule is backed by current WooCommerce and Shopify evidence plus fixed sample tests. Supported does not always mean lossless: some values produce a warning, values with no safe representation block output, and unsupported non-empty fields are reported instead of guessed.
The registry was reviewed on . Official CSV column names remain in English because both platforms define their import formats that way.
Official source: Product CSV Import Schema (reviewed ) Official source: Using CSV files to import and export products (reviewed )
Supported or conditional WooCommerce fields
ID(evidence 2026-07-17)Type(evidence 2026-07-17)SKU(evidence 2026-07-17)Name(evidence 2026-07-17)Published(evidence 2026-07-17)Short description(evidence 2026-07-17)Description(evidence 2026-07-17)Tax status(evidence 2026-07-17)Stock(evidence 2026-07-17)Backorders allowed?(evidence 2026-07-17)Weight (unit)(evidence 2026-07-17)Sale price(evidence 2026-07-17)Regular price(evidence 2026-07-17)Tags(evidence 2026-07-17)Images(evidence 2026-07-17)Parent(evidence 2026-07-17)Attribute 1 name(evidence 2026-07-17)Attribute 1 value(s)(evidence 2026-07-17)Attribute 2 name(evidence 2026-07-17)Attribute 2 value(s)(evidence 2026-07-17)Attribute 3 name(evidence 2026-07-17)Attribute 3 value(s)(evidence 2026-07-17)
Not automatically mapped
Non-empty values are preserved in the issue report. They do not become Shopify fields through name similarity.
Is featured?(evidence 2026-07-17)Visibility in catalog(evidence 2026-07-17)Date sale price starts(evidence 2026-07-17)Date sale price ends(evidence 2026-07-17)Tax class(evidence 2026-07-17)In stock?(evidence 2026-07-17)Low stock amount(evidence 2026-07-17)Sold individually?(evidence 2026-07-17)Allow customer reviews?(evidence 2026-07-17)Purchase Note(evidence 2026-07-17)Purchase note(evidence 2026-07-17)Categories(evidence 2026-07-17)Shipping class(evidence 2026-07-17)Download limit(evidence 2026-07-17)Download expiry days(evidence 2026-07-17)Grouped products(evidence 2026-07-17)Upsells(evidence 2026-07-17)Cross-sells(evidence 2026-07-17)External URL(evidence 2026-07-17)Button text(evidence 2026-07-17)Position(evidence 2026-07-17)Attribute 1 default(evidence 2026-07-17)Attribute 1 visible(evidence 2026-07-17)Attribute 1 global(evidence 2026-07-17)Attribute 2 default(evidence 2026-07-17)Attribute 2 visible(evidence 2026-07-17)Attribute 2 global(evidence 2026-07-17)Attribute 3 default(evidence 2026-07-17)Attribute 3 visible(evidence 2026-07-17)Attribute 3 global(evidence 2026-07-17)Length (unit)(evidence 2026-07-17)Width (unit)(evidence 2026-07-17)Height (unit)(evidence 2026-07-17)Meta: <key>(evidence 2026-07-17)meta:<key>(evidence 2026-07-17)Download N name(evidence 2026-07-17)Download N URL(evidence 2026-07-17)
Automatic mapping and information-loss status
| WooCommerce field | Shopify output | Information loss | Evidence reviewed |
|---|---|---|---|
Name | Title, URL handle | Warning | 2026-07-17 / 2026-07-21 |
Description | Description | None | 2026-07-17 / 2026-07-17 |
Short description | Description | None | 2026-07-17 / 2026-07-17 |
SKU | SKU | None | 2026-07-17 / 2026-07-17 |
Tags | Tags | None | 2026-07-17 / 2026-07-21 |
Published | Published on online store, Status | Warning | 2026-07-17 / 2026-07-17 |
Tax status | Charge tax | Blocking | 2026-07-17 / 2026-07-17 |
Stock | Inventory quantity | Blocking | 2026-07-17 / 2026-07-17 |
Backorders allowed? | Continue selling when out of stock | Warning | 2026-07-17 / 2026-07-17 |
Weight (unit) | Weight value (grams), Weight unit for display | Blocking | 2026-07-17 / 2026-07-17 |
Regular price | Price, Compare-at price | None | 2026-07-17 / 2026-07-17 |
Sale price | Price | None | 2026-07-17 / 2026-07-17 |
Images | Product image URL, Image position, Variant image URL | Blocking | 2026-07-17 / 2026-07-17 |
Parent | URL handle | None | 2026-07-17 / 2026-07-17 |
Attribute 1 name | Option1 name | None | 2026-07-17 / 2026-07-17 |
Attribute 1 value(s) | Option1 value | None | 2026-07-17 / 2026-07-17 |
Attribute 2 name | Option2 name | None | 2026-07-17 / 2026-07-17 |
Attribute 2 value(s) | Option2 value | None | 2026-07-17 / 2026-07-17 |
Attribute 3 name | Option3 name | None | 2026-07-17 / 2026-07-17 |
Attribute 3 value(s) | Option3 value | None | 2026-07-17 / 2026-07-17 |
Output policies that add required companions
| Policy | Shopify columns | Information loss | Evidence reviewed |
|---|---|---|---|
shopify-option1-companion-requirement | Option1 name, Option1 value, SKU, Price, Compare-at price, Charge tax, Inventory tracker, Inventory quantity, Continue selling when out of stock, Weight value (grams), Weight unit for display, Requires shipping, Fulfillment service, Variant image URL | Blocking | 2026-07-17 |
shopify-default-option-representation | Option1 name, Option1 value | None | 2026-07-17 |
shopify-inventory-companion-defaults | Inventory quantity, Inventory tracker, Continue selling when out of stock | None | 2026-07-17 |
shopify-fulfillment-service-default | Fulfillment service | None | 2026-07-17 |
shopify-physical-product-default | Requires shipping | None | 2026-07-17 |
What remains outside the automatic scope?
CatalogHandoff does not map WooCommerce Categories to Shopify Product category, Collection, or Type. It also does not infer store-specific values, fetch media URLs, or add plugin fields. Recheck the report and this registry after any platform format change.