Bulk upload
Bulk file format
A JSON array of products, each in the same format as a single upsert. Include
id to target an existing product directly; otherwise product_reference is
matched.
The example shows a single-variant product with no options, and a two-variant product where options are required.
[
{
"product_reference": "abc123",
"name": "Demo Product",
"description": "A simple product with one variant, so no options are needed",
"condition": "NEW",
"delivery_type": "STANDARD_SHIPPING",
"handling_time": 3,
"quantity_per_lot": 1,
"tags": "electronics,gadgets",
"vendor": "ACME Inc.",
"images": [
{ "src": "https://example.com/image1.jpg", "position": 1 }
],
"variants": [
{
"variant_id_text": "ab1",
"sku": "SKU-ABC123",
"position": 1,
"price": 199.99,
"quantity": 5,
"weight": 1.23
}
]
},
{
"id": 1234,
"product_reference": "def456",
"name": "Demo T-Shirt",
"description": "Two variants, so each one needs at least one option",
"condition": "NEW",
"delivery_type": "STANDARD_SHIPPING",
"images": [
{ "src": "https://example.com/shirt.jpg", "position": 1 }
],
"variants": [
{
"variant_id_text": "shirt-small",
"sku": "SHIRT-S",
"position": 1,
"price": 149.0,
"quantity": 10,
"weight": 0.3,
"options": [
{ "name": "Size", "value": "Small" }
]
},
{
"variant_id_text": "shirt-large",
"sku": "SHIRT-L",
"position": 2,
"price": 149.0,
"quantity": 4,
"weight": 0.35,
"options": [
{ "name": "Size", "value": "Large" }
]
}
]
}
]
1234 is an example id. Use one from your own responses; an unknown id
stops the run.
Checks applied to each product
The bulk run checks each product before storing it. A failed product is
skipped, its reason is added to errors on Check bulk upload status, and the
run continues.
| Error | Meaning |
|---|---|
product reference empty |
product_reference was missing or empty. |
NEW_ITEM is not in NEW,SECOND_HAND,REFURBISHED,OPEN_BOX |
Unrecognised condition. |
POSTAGE is not in STANDARD_SHIPPING,DIGITAL_DELIVERY,ALLOWS_COLLECTION,COLLECTION_ONLY |
Unrecognised delivery_type. |
handling time cannot be more than 15 days |
handling_time above 15. |
product with id:123 does not belong to given channel |
The id belongs to a product on another channel. |