Import products in bulk
With a prepared file, the import itself is the short part. The part that deserves attention is reading the result.
Run it
- Go to PIM › Products.
- Select Import.
- Upload the CSV file.
- Confirm the column mapping. If your header row uses attribute codes this is mostly automatic; map anything left unmatched, or mark it to be ignored.
- Check the key. The import matches on
sku: an existing SKU is updated, a new one is created. There is no mode that skips existing products, so a file that is meant to add products only must not contain SKUs you already have. - Start the import.
Large files run in the background. You can leave the screen.
Read the result
The result reports three numbers: created, updated, failed. All three matter.
Created higher than you expected usually means the SKU column did not match existing products. Check for leading zeros or a prefix difference before you carry on, because you may now have duplicates.
Updated at zero on a re-import means nothing matched. Same cause.
Failed rows come with a reason. The usual ones:
| Message | Cause | Fix |
|---|---|---|
| Unknown attribute | Column header is a label, not a code | Rename to the attribute code |
| Invalid option | Select value is a label, not an option code | Use the option code, or add the option |
| Unknown family | Family code is wrong or missing | Check spelling; family is required when creating |
| Validation failed | Value breaks a rule on the attribute | Fix the value, or relax the validation |
| Unknown record | Reference value is not an existing record code | Create the record first |
| Missing required | A required attribute is empty | Fill it, or reconsider whether it is required |
Fix the source file, not the exported error file, and re-run. Re-running is safe: matched SKUs update rather than duplicate.
After the import
Two things the import does not do for you:
- Completeness. A product arrives measured only if it arrived with a family. Select the imported products in the grid and run Recompute completeness; the Never measured queue lists the ones nobody has measured yet.
- Publishing. The tenant setting Publish new products immediately decides whether new rows land enabled. With it on, an 8,000-row import is live in every channel before anybody has looked at it. Turn it off before a first load, then enable deliberately.
Import order
When you are loading a catalog from scratch, order matters. A product cannot reference a record that does not exist yet:
- Attribute options
- Reference entity records (manufacturers, materials)
- Assets
- Categories
- Product models
- Variant products
- Category assignments (if not in the product file)
Recurring imports
For a feed that runs regularly rather than a one-off migration, do not run it by hand. Build it in Integration Studio, where you get scheduling, retries and failure alerting. See Build a workflow and Monitor your syncs.
Before you do, settle which system owns which field. A recurring import that overwrites enriched descriptions with 40-character ERP text every night is a common and painful mistake.