If your data lives in a spreadsheet, export it to CSV first — or use the Excel
re-importer below, which reads
.xlsx directly. Pipe-delimited cells let a
single column carry multiple values.Two upload paths
They look similar and share a column format, but they behave differently. Pick deliberately.The file
Your file needs a header row. A few columns are required; the rest are up to you.How columns map
MerchantOps maps your columns automatically — there is no mapping dialog to fill in on this path.1
System columns map to product fields
key, productType, source, and isPublished set the product’s core
fields. Common headers are recognized case-insensitively and in a few
spellings — for example Product Type, product_type, and productType
all resolve to the product type.2
Every other column becomes an attribute
Any column that isn’t a system column is stored as a product-level
attribute, keyed by the column name —
brand, description, color, material, and so on.3
Pipe-delimited cells become multi-value
A cell like
Red|Blue is split into a list of values. Use this for any
attribute that holds more than one value.- Type coercion. Values are converted to the type each
property definition expects —
TRUE,Yes, and1all become a real boolean, for example. The CSV tab stores what it read: a spreadsheetTRUEstays the string"TRUE". - Conversely, brand auto-registration is specific to the CSV tab: brands that are new to a CSV upload are registered as brands automatically, so you don’t have to create each one up front. The Excel re-importer does not do this.
Unknown product types behave differently per path
This is the sharpest difference between the two paths. The Excel re-importer does check. Rows naming an unknown product type are rejected individually and reported with a “did you mean?” hint when a close match exists; the remaining valid rows still import.Variant rows (Excel only)
The Standard Excel export writes one row per product and one row per variant. On re-import, a row withrow_type set to variant and a parent_key naming
its product creates or updates that variant
instead of a product:
- The parent must be a product row in the same file or a product that already exists. Otherwise the variant row errors.
- Variants inherit their parent’s product type.
- The 250 cap counts products, so a product with many variants doesn’t eat the limit.
Re-importing to update existing products
By default every valid row creates a new version of the product. To overlay your edits onto what’s already there instead, use Merge only provided columns:- It is pre-checked in the Import Products (Excel) dialog — that dialog exists for the export → edit → re-import loop.
- It is off by default on the CSV tab and in the JSON import dialog; tick it yourself if you want merge behavior there.
key matches an existing product overlays only the
columns present in your file onto that product’s latest version, preserving
every other field, and adds a new version. A row that changes nothing is skipped
rather than re-versioned. Keys that don’t exist yet are still created normally.
Merge is ignored when enrichment options are enabled on the upload — those rows
go through the normal create-and-enrich path instead. On the CSV tab the
enrichment options are on by default, so merge does nothing there until you
turn them off. The Excel re-importer never enriches, so merge always applies.
Reading the result
The upload returns a per-row report: the total rows submitted, how many were created, how many failed, and a per-row error list (row number, product key, and reason) so you can fix a source file and re-upload just what failed. An Excel import also reports how many variants it created or updated. Rows are reported by their position in the file, counting the header as row 1. When you correct errors, match the row numbers in the error list against your original file. If you enable enrichment options on the upload, each new product is queued for enrichment — Lakehouse search, brand-site scraping, or content generation — and that work is tracked as a Job you can watch after the upload returns.Display groups on property imports
Products validate against property definitions, which are organized into display groups. When you import property definitions by CSV, any display group named in that file that doesn’t yet exist is created for you. (This applies to the property-definition import, not to the product upload described above.)Exporting products
The other half of the round trip: producing the file you edit and re-import.
Recurring imports
How a scheduled feed from another system is set up.
Jobs
Watch enrichment progress after an upload.
Product types & properties
The templates and attribute schema your rows map onto.
How enrichment works
What happens when you enable enrichment on an upload.