Zopping

Bulk imports

Create or update records by the thousand with file uploads instead of one call at a time — products, price/stock, orders and customers. The advanced companion to Sync your catalog and Manage stock & prices.

The pattern

Every importable entity follows the same two steps:

  1. Get the template — GET the upload endpoint to retrieve the expected column headers (they vary by org, e.g. custom attributes).
  2. Upload the file — POST a CSV as multipart/form-data. Large files are processed asynchronously.

Products

# 1. Column template
curl "https://zopping.com/api/catalogue-service/product-upload?organizationId=<org-id>" \
  -H "Authorization: Bearer $ZOPPING_TOKEN"

# 2. Upload
curl -X POST https://zopping.com/api/catalogue-service/product-upload \
  -H "Authorization: Bearer $ZOPPING_TOKEN" \
  -F "organizationId=<org-id>" -F "file=@products.csv"

Other entities

ImportTemplate (GET)Upload (POST)
Products/api/catalogue-service/product-uploadsame
Orders/api/order-service/order-upload/api/order-service/order-file
Customers/api/customer-service/customer-uploadsame
Customer tags—/api/customer-service/customer-tag-file

Use your own identifiers (clientItemId / clientId) as columns so rows map to your system and re-uploads update rather than duplicate.

Async processing

Bulk jobs are queued and processed in the background, so a successful upload means accepted, not finished. Reconcile afterwards by reading the affected records (e.g. list products with your clientIds) rather than assuming row-by-row success.

Good practices

  • Always fetch the template first — columns differ per organization.
  • Chunk very large files for easier error isolation.
  • Re-read to confirm; treat the upload response as an acknowledgement.

Reference: Catalog · Orders · Customers.