Exports

CSV exports of products and orders: every format, its delimiter and columns, and how its ids match the API.

All exports are CSV, UTF-8 with a BOM (EF BB BF, so Excel opens accents correctly), one header row first, \n line endings. Streamed back as text/csv; charset=utf-8 with Content-Disposition: attachment.

What the API writes differently from the dashboard download (same columns otherwise):

  • product ids are prod_<hex>, exactly as in GET /products (the dashboard file has the bare hex id);
  • prices have exactly 2 decimals as text ("15.90"), like the API;
  • order exports end with the API order id and the channel references (columns below).

A products file exported through the API can be re-imported with POST /imports (csv): the prod_… ids are recognised, so existing products are updated, not duplicated.

Values: text fields that may contain the delimiter are wrapped in "…"; a " inside them becomes '; # is removed from every row (legacy compatibility). Empty cell = no value.

Products — format=standard (default)

Delimiter ,. One row per variant; product-level columns (title, description, option names, images, brand, tags, category, weight, dimensions) are filled on the product's first row only, the following variant rows repeat only id and the variant columns.

ColumnMeaningExample
idProduct id (prod_…), on every rowprod_6ad22d0ee891b034a5693aa0
titleProduct title (first row)Ceramic mug
descriptionProduct description (HTML allowed, first row)"<p>Hand made</p>"
option_1_nameFirst option name (first row)Size
option_1_valueThis variant's valueM
option_2_name / option_2_valueSecond optionColor / Blue
option_3_name / option_3_valueThird option
skuVariant SKUTSHIRT-M-BLUE
gtinVariant barcode (EAN/UPC)0080694175826
asinAmazon ASINB009DEA0SQ
quantityStock (0 when empty)25
pricePrice in the store currency, 2 decimals15.90
image_linkMain product image URL (first row)https://…/a.jpg
additional_image_linkOther product image URLs, comma-separated inside quotes (first row)
variant_image_linkThis variant's own image
variant_additional_image_linkThis variant's other images
brandBrand (first row)Acme
tagsTags, comma-separated inside quotes (first row)"mug,kitchen"
categorySeller's own category label (first row)Kitchen
weight / weight_unitWeight and unit (first row)0.4 / kg
height / width / length / dimensions_unitsDimensions and unit (first row)10 / 8 / 8 / cm

Products — format=inventory

Delimiter ,. One row per variant. Stock and price focused.

ColumnMeaningExample
idProduct id (prod_…)prod_6ad22d0ee891b034a5693aa0
nameProduct title (first row of the product only)Cotton T-shirt
option_1_name … option_3_valueAs in standard
sku, gtin, asinAs in standard
quantityStock3
pricePrice, 2 decimals19.90
variant_image_link, variant_additional_image_linkAs in standard

Products — format=google

Delimiter | (pipe; | and # are removed from titles and descriptions). One row per product, built from its first variant (Google Merchant Center feed). Products that require attention are left out.

ColumnMeaningExample
idOffer id: the first variant's SKU, else the product id (prod_…)MUG-1
titleTitle (line breaks removed)Ceramic mug
descriptionDescription as plain text (HTML stripped, line breaks removed)Hand made
linkThe product's URL on the first marketplace it's listed on, else its Nembol storefront pagehttps://nembolitalia.myshopify.com/products/ceramic-mug
image_linkMain imagehttps://…/a.jpg
additional_image_linkOther images, comma-separated
availabilityAlways in stockin stock
priceFirst variant's price, 2 decimals, no currency (add it in Merchant Center; it's the store currency)15.90
brandBrandAcme
gtinFirst variant's barcode0080694175826
conditionAlways newnew
google_product_categoryAlways empty (set it in Merchant Center)

Orders — format=standard (default)

Delimiter ; (semicolon). One row per order line; order-level columns are on the order's first row only.

ColumnMeaningExample
OrderThe order number the channel shows to the seller (Shopify "#1011" → 1011), on every row1011
ChannelChannel (first row)shopify
DateOrder date YYYY-MM-DD HH:mm:ss (first row)2026-10-16 21:00:00
TitleLine titleCotton T-shirt
SKULine SKUTSHIRT-S-RED
VariantVariant nameS / Red
QuantityQuantity1
Item priceUnit price, 2 decimals9.90
Total priceSum of the lines (first row)19.80
Address1, Address2, City, Zip, Province, CountryShipping address (first row)
Email, Name, PhoneBuyer (first row)
CurrencyOrder currency (first row)USD
Subtotal, Shipping, Discount, TaxMoney breakdown when the channel reports it (first row; empty for orders imported before tax capture)19.80 / 5.00 / 0.00 / 1.60
Tax remitted byseller, or the marketplace that collected the tax (e.g. etsy)seller
Order totalWhat the buyer paid (first row)26.40
Order IDAPI only: the order id in the API (ord_…, same as GET /orders), on every roword_057ca3ae7912e009d01612d7
Order ID on channelAPI only: the channel's own order id, = order_id_on_channel in the API, on every row18968716083351
StatusAPI only: the order's status, as status in GET /orders (awaiting_shipment, shipped, canceled, refunded…), on every row. Canceled and refunded orders are in this file: filter on this column for sales totalsshipped

Orders — format=quickbooks

Delimiter ,. QuickBooks Online invoice-import layout (Settings → Import data → Invoices): one row per order line, the invoice columns repeated on each row. The required QuickBooks columns are unchanged; the API appends two columns at the end, which the QuickBooks mapping screen lets you skip. Canceled and refunded orders are left out, so they never become invoices; partially refunded orders stay, at their original amounts (record the refund in QuickBooks).

ColumnMeaningExample
InvoiceNo<channel>-<channel order id> (unique per channel order)shopify-18968716083351
CustomerBuyer name, else email, else <channel> buyerTest Buyer
InvoiceDate / DueDateOrder date YYYY-MM-DD (marketplace orders are already paid: due on the invoice date)2026-10-16
Item(Product/Service)SKU, else title (≤ 100 chars)TSHIRT-S-RED
ItemDescriptionTitle and variantCotton T-shirt — S / Red
ItemQuantityQuantity1
ItemRateUnit price, 2 decimals9.90
ItemAmountRate × quantity, 2 decimals9.90
CurrencyLine currencyUSD
ItemTaxAmountOrder tax, on the order's first row only1.60
OrderIdAPI only: API order id (ord_…), on every roword_057ca3ae7912e009d01612d7
OrderNumberAPI only: the number the channel shows (1011)1011

One order, three references

WhereValue for Shopify order #1011
API order id (GET /orders, exports Order ID / OrderId)ord_057ca3ae7912e009d01612d7
Channel's own id (order_id_on_channel, standard Order ID on channel, inside QuickBooks InvoiceNo)18968716083351
Number the seller sees on the channel (API number, standard Order, QuickBooks OrderNumber)1011

Match exports to the API with Order ID / OrderId (orders) and id (products).

Last updated on October 19, 2026

Need help?

Email us and a human replies, usually within one business day.

On this page