StriveFormats
WooCommercegeneral

WooCommerce Product Attributes in CSV: Complete Guide

How to correctly format WooCommerce product attributes in a CSV file — attribute naming, global vs. local attributes, variation attributes, and common mistakes.

Updated 2026-03-06
What you'll learn
  • How WooCommerce attribute columns are named and numbered in CSV
  • The difference between global and local attributes in CSV imports
  • How to set attributes for variable products and their variations
  • How to import multiple attribute values (e.g., a product available in Blue and Red)
  • How to fix the most common attribute import errors
Best for: WooCommerce store owners importing variable products with size, color, material, or other attribute dimensions
Time to complete: 10 minutes
Last updated: 2026-03-06

How WooCommerce Attributes Work in CSV

WooCommerce product attributes define the dimensions by which a product varies — typically Size, Color, or Material. In a CSV import, attributes are represented as numbered column groups. Each group of four columns covers one attribute.

The column naming pattern is:

  • Attribute 1 name
  • Attribute 1 value(s)
  • Attribute 1 visible
  • Attribute 1 global

For a second attribute, repeat with Attribute 2 name, Attribute 2 value(s), etc.

Column Reference

| Column | Format | Description | |---|---|---| | Attribute N name | Text | The attribute name (e.g., Color, Size) | | Attribute N value(s) | Text, pipe-separated | The value(s) for this row (e.g., Blue or Blue | Red) | | Attribute N visible | 1 or 0 | 1 = shown on product page; 0 = hidden | | Attribute N global | 1 or 0 | 1 = global taxonomy attribute; 0 = local attribute |

Simple Products With Multiple Attribute Values

For a simple product that is available in multiple colors (but not as separate variations), list all values in the Attribute 1 value(s) column separated by a pipe |:

Name,Type,SKU,Regular price,Attribute 1 name,Attribute 1 value(s),Attribute 1 visible,Attribute 1 global
Blue Scarf,simple,SCARF-001,14.99,Color,Blue | Navy | Teal,1,1

This creates one product with a Color attribute that shows all three color values on the product page.

Variable Products With Variations

For variable products, attributes work differently. The parent row lists all possible attribute values. Each variation row lists only the specific value for that variation.

Parent row (Type: variable):

Name,Type,SKU,Regular price,Attribute 1 name,Attribute 1 value(s),Attribute 1 visible,Attribute 1 global
T-Shirt,variable,TSHIRT,20.00,Size,S | M | L | XL,1,1

Variation rows (Type: variation):

Name,Type,SKU,Regular price,Attribute 1 name,Attribute 1 value(s),Attribute 1 visible,Attribute 1 global
,variation,TSHIRT-S,18.00,Size,S,1,1
,variation,TSHIRT-M,18.00,Size,M,1,1
,variation,TSHIRT-L,20.00,Size,L,1,1
,variation,TSHIRT-XL,20.00,Size,XL,1,1

The Name column is blank on variation rows — WooCommerce generates the variation name from the attribute values.

Two Attributes (Size + Color)

For a product with two attribute dimensions:

Parent row:

Name,Type,SKU,Attribute 1 name,Attribute 1 value(s),Attribute 1 visible,Attribute 1 global,Attribute 2 name,Attribute 2 value(s),Attribute 2 visible,Attribute 2 global
Running Shoe,variable,SHOE,Size,7 | 8 | 9 | 10,1,1,Color,Black | White,1,1

Variation rows:

,variation,SHOE-7-BLK,Size,7,1,1,Color,Black,1,1
,variation,SHOE-7-WHT,Size,7,1,1,Color,White,1,1
,variation,SHOE-8-BLK,Size,8,1,1,Color,Black,1,1

Each variation row specifies exactly one value per attribute (not a pipe-separated list).

Global vs. Local Attributes

Global attributes (Attribute N global: 1)

Global attributes are defined in WooCommerce's attribute taxonomy (Products → Attributes in WordPress admin). Use global attributes when:

  • Multiple products share the same attribute terms (same colors, same sizes)
  • You want to filter products by attribute in shop pages
  • You use WooCommerce's layered navigation widget

When importing with global: 1, WooCommerce creates the attribute term if it doesn't exist yet. Attribute names must match exactly (case-sensitive) for WooCommerce to match them to the existing taxonomy.

Local attributes (Attribute N global: 0)

Local attributes are specific to one product. Use local attributes for product-specific specifications that don't apply elsewhere (e.g., Material: 100% cashmere on one particular product).

Local attributes cannot be used for variation filtering or layered navigation.

Common Attribute Import Errors

Attribute columns not recognized

Cause: Column names don't follow the exact pattern — wrong spacing, wrong numbering, or abbreviated names.

Wrong: Attribute1 name, attribute 1 name, Attr 1 name Correct: Attribute 1 name

Fix: Use the exact column names with a space between Attribute and the number.

Variation attributes don't match parent

Cause: The attribute name on a variation row doesn't match the attribute name on the parent row, or the variation specifies a value that wasn't in the parent's value list.

Fix: Attribute names must be identical on parent and variation rows. Variation values must be a subset of the values listed on the parent row.

Pipe separator with spaces

Cause: Using | (with spaces around the pipe) instead of | or | (without spaces). WooCommerce trims values, but inconsistencies can cause mismatches.

Fix: Use | with or without surrounding spaces consistently throughout the file. WooCommerce trims the whitespace around each value.

Fix This Automatically with StriveFormats

Upload your WooCommerce CSV to StriveFormats. The validator checks attribute column naming, parent/variation attribute consistency, and pipe-separator formatting — then flags issues with exact row and column locations.

Open WooCommerce CSV Fixer | View WooCommerce Template

Need help fixing your file?

Upload your CSV to StriveFormats for instant validation, auto-fixes, and a clean export. Our CSV validator checks for formatting errors, missing headers, and platform-specific requirements.