A catalogue CSV
Columns are read by name, so you may reorder or omit them. Omitted columns leave
stored values alone on an update; present-but-empty columns clear them. Money is
integer cents. Lists inside a cell are |-separated.
slug,name,kind,description,bullet_points,tax_code,option1_name,option1_value,option2_name,option2_value,variant_sku,variant_price_cents,variant_compare_at_price_cents,variant_inventory_type,variant_inventory_quantity,variant_weight_grams,is_livecanvas-tote,Canvas Tote,physical,Heavyweight cotton canvas with a boxed base.,16 oz cotton canvas|Machine washable,,Size,Small,Colour,Natural,TOTE-S-NAT,3400,,finite,12,320,truecanvas-tote,Canvas Tote,physical,Heavyweight cotton canvas with a boxed base.,16 oz cotton canvas|Machine washable,,Size,Small,Colour,Black,TOTE-S-BLK,3400,,finite,8,320,truecanvas-tote,Canvas Tote,physical,Heavyweight cotton canvas with a boxed base.,16 oz cotton canvas|Machine washable,,Size,Large,Colour,Natural,TOTE-L-NAT,3900,,finite,5,410,truecanvas-tote,Canvas Tote,physical,Heavyweight cotton canvas with a boxed base.,16 oz cotton canvas|Machine washable,,Size,Large,Colour,Black,TOTE-L-BLK,3900,,finite,0,410,trueenamel-pin,Enamel Pin,physical,Hard enamel on brass with a rubber clutch.,,,,,,,PIN-01,1200,1500,infinite,,15,truestudio-wallpaper,Studio Wallpaper Pack,digital,Six desktop and phone wallpapers as a zip.,,txcd_10301000,,,,,WALL-01,500,,infinite,,,truelinen-apron,Linen Apron,physical,Coming soon.,,,,,,,APRON-01,6800,,finite,20,280,falseReading it
Section titled “Reading it”canvas-toteis one product with two axes and four variants. Every row repeats the product fields; the importer takes them from the first row and refuses the file if a later row disagrees. The Large / Black variant has zero stock, so it shows as sold out.enamel-pinhas no options and one variant, with a compare-at price above its price, so it shows a Sale badge. Compare-at is never sent to Stripe.studio-wallpaperis digital: inventory must beinfinite, weight is ignored, and it carries a digital-goods tax code.linen-apronhasis_livefalse, so it lands as a draft.
Importing
Section titled “Importing”Products → Import CSV previews it: how many rows, creates and updates, and every error at once with its row and column. Nothing is written until you commit. An import never publishes; each live product still needs Publish before it can be bought.
By the API:
curl -b cookies -H "x-csrf-token: $CSRF" -H "content-type: text/csv" \ --data-binary @catalogue.csv \ https://your-store/api/admin/products/import/validateScripting the admin API shows where the cookie and the token come from. Catalogue CSV has the rules.