This documentation is for the premium Product CSV Import Suite extension. If you’re looking for documentation about the default product importer built-in in WooCommerce, see that documentation here.
Here is an extensive list of column headers you can use in your CSV for all default product types in WooCommerce. You can download a sample CSV file here.
Please note column names are case sensitive and should be lower case to match exactly.
Default Column Headers
↑ Back to topColumn | Description | Accepted values | Example |
---|---|---|---|
id | Assigned by WordPress. | N/A | N/A |
tax:product_type | Required. Whether your product is Simple, Grouped, External, or Variable. | simple / variable / grouped / external | simple |
post_id | Assigned by WordPress. | N/A | N/A |
post_type | By default, this is product. | product | product |
menu_order | Use this to sort your products. | Numerical | 5 |
post_status | Choose whether your post should be published or not. | draft / publish / pending / private / trash | draft |
post_title | Required. Name of the product. | Text | Killer Heels |
post_name | Use this to update the product slug, which forms part of the product’s permalink. | Text | hoodie_with_logo |
post_date | Date/time from your WordPress admin. You only need to add a date if you don’t want to use the current date. If you’re updating products, leave this as the exported value unless you want to make the product appear more/less recent. | mm/dd/yyyy dd-mm-yyyy More accepted date formats | 01/02/2015 02-01-2015*Both of these are January 2, 2015 |
post_content | Post content, normally a description of the product. | Text | Super high heels are all the rage. Look beautiful this season with a gorgeous pair of killer heels. Available in 5 colors! |
post_excerpt | Short description of the product. | Text | This season’s latest heels! |
post_parent | Use for variations. Enter the ID of the parent product. Note: Variables should be imported in a separate spreadsheet. | Post ID | 234 |
post_password | If your post is private, include the password. | Text | !MyAwesomePassw! |
visibility | Choose visibility for your product. Learn more about product visibility. | visible / catalog / search / hidden | visible |
sku | Recommended. SKU of the product. Must be unique. | Text | SH99786 |
upsell_skus | SKU(s) of the product to which you wish to upsell. | Text – multiple skus separated by a “|” character. | SKU1|SKU2 |
upsell_ids | ID of the product to which you wish to upsell. | post ID – multiple IDs separated by a “|” character. | 236|569 |
crosssell_skus | SKU(s) of the product with which you wish to crosssell. | Text – multiple skus separated by a “|” character. | SKU1|SKU2 |
crosssell_ids | ID of the product that can be purchased with this product. | post ID – multiple IDs separated by a “|” character. | 236|569 |
featured | Whether this product should be featured or not. | yes/no | yes |
downloadable | Whether your product is downloadable or not. | yes/no | no |
virtual | Whether your item is a non-physical object or not. | yes/no | no |
regular_price | Required for all products except variable products. Normal price of your product. | Float (Decimal number) | 99.99 |
sale_price | Sale price of your product, if on sale. | Float (Decimal number) | 69.99 |
manage_stock | Whether or not you are managing stock for the product. | yes/no | no |
stock | Number of this item you have in stock. Can be relative to the value currently configured in the product. | Numerical | 3 (+)10 (-)3 |
stock_status | Whether you have any in stock or not. | instock / outofstock | instock |
backorders | Whether you’re accepting backorders. | yes/no/ notify | yes |
weight | Weight of your product. Complete if you’re using weight-based shipping rules or a shipping method that pulls rates from an external service. Use the same measurement unit set for your site. | Numerical | 0.73 |
length | Length of your product. Use if you pull rates from an external service, such as USPS. Use the same measurement unit set for your site. | Numerical | 10.5 |
width | Width of your product. Use if you pull rates from an external service, such as USPS. Use the same measurement unit set for your site. | Numerical | 15 |
height | Height of your product. Use if you pull rates from an external service, such as USPS. Use the same measurement unit setted in your site. | Numerical | 8 |
tax_status | Use to determine whether your product is taxable or not. | taxable / shipping / none | taxable |
tax_class | Tax class of your product. | zero-rate, reduced-rate Notice that you have to use the slug of the tax class. Leave blank if the value should be Standard Rate. | reduced-rate |
tax:product_shipping_class | Product’s shipping class | Allows you to set the Shipping Class when uploading a product to your store. | Class 1 |
sale_price_dates_from | Date from when your sale price is used. | MM DD YYdd MM YY MM” / “DD” / “YYDD” / “MM” / “YY” More accepted date formats | 01/02/2013 |
sale_price_dates_to | Date when your sale ends for this product. | MM DD YYdd MM YY MM” / “DD” / “YYDD” / “MM” / “YY” More accepted date formats | 01/04/2013 |
images | Import images. Use a pipe (“|”) to separate multiple images. You can use public facing URLs for images, however, this may cause images to be duplicated in your media library when using the same image for multiple products. When importing an image that is already uploaded to your site, enter the image’s file name as shown in the example When only using an image’s file name, the importer will look in wp-content/uploads/year/month where year/month are the year and month in which the import is run. This means that the images should be uploaded to your media library in the same month you are running the import.The first image listed is the main product image and will be used as the featured image. | Text | image1.jpg | image2.jpg | image3.jpg |
product_url | Use if the product is sold on another site. Used by External/Affiliate products only. | URL | http://amazon.com/etc |
button_text | Text that will appear on your “Add to cart” button. Used by External/Affiliate products only. | Text | Buy on Amazon! |
meta:_sold_individually | Can the product only be sold on its own? | yes/no | no |
meta:total_sales | Total sales for this product. | Numerical | 56 |
meta:_children | Product ID’s of a grouped product’s children | post ID’s in brackets – multiple IDs separated by a “,” character. | [123, 124] |
Downloadable & Digital Products
↑ Back to topDownloadable products are products that can be downloaded by customers after purchase. To learn more, see: Digital/Downloadable Product Handling.
You can also import them. Be sure to import the files previously (if needed) and use these columns in the CSV to import:
Column | Description | Accepted values | Example |
---|---|---|---|
downloadable_files | File name(s) and file path(s) for your product. Use a pipe “|” to separate values. | Filename::File-Path | New::http://domain.com/wp-content/uploads/woocommerce_uploads/Issue45.pdf | Issue 45::http://domain.com/wp-content/uploads/woocommerce_uploads/Issue45.pdf |
download_limit | Maximum number of downloads for a product. | Numerical | 2 |
download_expiry | Date on which the download expires. | MM DD YYdd MM YY MM” / “DD” / “YYDD” / “MM” / “YY” More accepted date formats | 01/04/2013 |
Attributes Columns
↑ Back to topThese columns are used on Variable Products, but it’s possible to use some for other product types.
View the differences between the attributes in the table below.
- Global attributes use pa_ before the attribute name and do NOT use spaces. They’ll be formatted automatically by the importer. Use dashes or underscores instead.
- Local attributes are not held to the same naming conventions.
Column | Columns Header Example | Description | Accepted values | Example |
---|---|---|---|---|
attribute:ATTRIBUTE NAME | attribute: Hoodie Sizes | Import local product attributes. | Attribute 1 | Attribute 2 | Attribute 3 | Small|Medium|Large |
attribute_default:ATTRIBUTE NAME | attribute_default: Hoodie Sizes | Set the default value of the local attribute. Used only by variable products. | Text | Medium |
attribute_data:ATTRIBUTE NAME | attribute_data: Hoodie Sizes | Used to order (numerical value) and display local attributes (1 for display, 0 for not display), and for variations (1 for used for variations, 0 for not used for variations). The third value is used only by variable products and ignored by other product types. | position | visible | variation | 3|0|1 |
attribute:pa_ATTRIBUTE_NAME | attribute: pa_color | Import global product attributes. | Attribute 1 | Attribute 2 | Attribute 3 | Red|Blue|Yellow |
attribute_default:pa_ATTRIBUTE_NAME | attribute_default: pa_color | Set the default value of the global attribute for the product. Used only by variable products. | Text | Red |
attribute_data:pa_ATTRIBUTE_NAME | attribute_data: pa_color | Used to order (numerical value) and display global attributes (1 for display, 0 for not display), and for variations (1 for used for variations, 0 for not used for variations). The third value is used only by variable products and ignored by other product types. | position | visible | variation | 3|0|1 |
Creating New Columns
↑ Back to topYou may add as many columns as you like to add custom fields or taxonomies to products.
To do this, use the column headers meta: and tax:
Column | Columns Header Example | Description | Accepted values | Example |
---|---|---|---|---|
meta:CUSTOM FIELD NAME | meta: Product Brand | Import a custom field. | Text | Jimmy Choo |
tax:TAXONOMY_NAME | tax:product_cat | Import a taxonomy or custom taxonomy (e.g., product category). Terms are separated by a “|”. Hierarchical category terms are separated with a “>”. | Text | Women|Women>Shoes |
 | tax:product_tag | Import a tag. Terms are separated by a “|”. | Text | Shoes|High Heels |
Columns For Variations
↑ Back to topWhen importing variable products, you need to create a separate CSV for all variations.
Column | Description | Accepted values | Example |
---|---|---|---|
post_parent | Parent product of the variation. This should be that product’s ID. | Numerical | 273 |
parent_sku | Parent product of the variation. This should be that product’s SKU. | Text | SH9988 |
One of two columns is required for each variation in the CSV, or the importer cannot create the variations correctly.
In addition, you can use these columns:
Column | Description | Accepted values | Example |
---|---|---|---|
post_status | Choose whether the variation should be published or not. | draft / publish / pending / private | draft |
sku | Recommended. The SKU of the variation. Must be unique. | Text | SH99786 |
downloadable | Whether the variation is a downloadable item or not. | yes/no | no |
virtual | Whether your item’s variation is a non-physical object or not. | yes/no | no |
regular_price | Required for all variations. Normal price of your variation. | Float (Decimal number) | 99.99 |
sale_price | Sale price of your variation, if it’s on sale. | Float (Decimal number) | 69.99 |
stock | Number of this item’s variation you have in stock. | Numerical | 3 |
weight | Weight of your variation. Complete if you are using weight based shipping rules, or a shipping method that pulls rates from an external service. Use the same measurement unit set for your site. | Numerical | 0.73 |
length | Length of your variation. Use if you pull rates from an external service, such as USPS. Use the same measurement unit set for your site. | Numerical | 10.5 |
width | Width of your variation. Use if you get rates from an external service such as USPS. Use the same measurement unit setted in your site. | Numerical | 15 |
height | Height of your variation. Use if you get rates from an external service such as USPS. Use the same measurement unit setted in your site. | Numerical | 8 |
tax_status | Use to determine whether your variation is taxable or not. | taxable/ shipping/none | taxable |
Columns for the Subscriptions Extension
Do you need Subscriptions?
Column Header | Description | Accepted values | Example |
---|---|---|---|
tax:product_type | Required. Denotes whether a product is a simple or variable subscription. | subscription / variable-subscription | variable-subscription |
meta:_subscription_price | Required. The price of each subscription renewal. | Numerical | 50 |
meta:_subscription_period | Required. The time interval of the subscription product. | day / week / month / year | week |
meta:_subscription_period_interval | Required. The number of intervals between each renewal payment. | Numerical | 2 |
meta:_subscription_length | The number of times the subscription will renew. For subscriptions that do not expire, specify “0”. | Numerical | 0 |
meta:_subscription_limit | Limit customers to only one subscription of a certain product. Can be limited to one active subscription, any subscription or not limited. | active / any / no | no |
meta:_subscription_one_time_shipping | Only charge shipping once on the initial order. | yes/no | no |
meta:_subscription_payment_sync_date | Day of the week (Sun = 0, Mon = 1, Tue = 2, etc.), of the month (1 – 28), or a specific calendar day each year (e.g. Dec 8 = {“day”:”8″,”month”:”12″}). Note: synchronized subscriptions for day of the month can only be renewed on days 1 – 27, or on the last day of the month (28). | Numerical / Array | 3 |
meta:_subscription_sign_up_fee | The cost of the sign up fee for the subscription. | Numerical | 10 |
meta:_subscription_trial_length | The number of time intervals of the subscription trial. | Numerical | 5 |
meta:_subscription_trial_period | The time interval of the subscription trial. | day / week / month / year | day |
Column for the Product Vendor Extension
Do you need Product Vendors?
Column Header | Description | Accepted values | Example |
---|---|---|---|
tax:wcpv_product_vendors | Import a vendor for a product | Text | Bob Smith |
Columns for the Google Product Feed Extension
↑ Back to topDo you need Google Product Feed?
Column Header | Description | Accepted Values |
---|---|---|
gpf:availability | Availability | in stock, available for order, preorder |
gpf:condition | Condition | new, used, refurbished |
gpf:brand | Brand | Text |
gpf:product_type | Product Type | Text |
gpf:google_product_category | Product category | Text |
gpf:gtin | GTIN (Global Trade Item Number) | Text |
gpf:mpn | MPN (Manufacturer Part Number) | Text |
gpf:gender | Gender | male, female, unisex |
gpf:age_group | Age group | adult, kids |
gpf:color | Color | Text |
gpf:size | Size | Text |
FAQ
↑ Back to topHow do I figure out what column header to use?
↑ Back to topIf you need to know how to name a specific column, or you’re not sure about how to format it, we suggest creating a product that includes everything you need for your products, then exporting it in a CSV and see what column it uses.