logo

Officeworks Items

Manage Officeworks SKUs within a collection. SKUs are stored in the same underlying table as Amazon ASINs, with the SKU code in the `asin` field, store ID in `custom_id`, and domain hard-coded to `officeworks.com.au`.

Create SKU

POST
https://multicartapi.com/api/v1/schedules/officeworks/sku/create/
API Key or Session Token

Add a single Officeworks SKU to a collection.

curl "https://multicartapi.com/api/v1/schedules/officeworks/sku/create/" \
  -X POST \
  -H "x-api-key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"collection": 100, "sku": "JBMS310BK", "store_id": "W411", "customer_postcode": 4500}'

Parameters

ParameterTypeRequiredDescription
collectionintegerRequiredCollection ID to add the SKU to. Collection must have request_type officeworks.com.au.
skustringRequiredOfficeworks SKU code e.g. JBMS310BK.
store_idstringRequiredOfficeworks store ID e.g. W411. Must exist in the stores table — use /settings/officeworks/stores/ to look up valid IDs.
customer_postcodestring or integerRequiredPostcode value (e.g. 4500) or Zipcode row ID (integer). The server resolves either form against the user's Zipcode records.
Request body
{"collection": 100, "sku": "JBMS310BK", "store_id": "W411", "customer_postcode": 4500}
Response
{"code": 200, "data": {"id": 77, "sku": "JBMS310BK", "store_id": "W411", "customer_postcode": "4500", "collection": 100}, "status": 1}

Notes

Max 5000 SKUs per collection. Adding the first SKU auto-promotes the collection from draft to enable. Duplicate is rejected when the same SKU already exists in the collection (uniqueness is SKU-per-collection, not SKU+store+postcode). Store ID is validated against tbl_officeworks_stores.

Create Multiple SKUs

POST
https://multicartapi.com/api/v1/schedules/officeworks/sku/create/multiple/
API Key or Session Token

Add multiple SKUs from a comma-separated string; all share the same store and postcode.

curl "https://multicartapi.com/api/v1/schedules/officeworks/sku/create/multiple/" \
  -X POST \
  -H "x-api-key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"collection": 100, "skus": "JBMS310BK,HPLAP001,DLLAT002", "store_id": "W411", "customer_postcode": "4500"}'

Parameters

ParameterTypeRequiredDescription
collectionintegerRequiredCollection ID.
skusstringRequiredComma-separated SKU codes e.g. JBMS310BK,HPLAP001,DLLAT002.
store_idstringRequiredOfficeworks store ID applied to all SKUs in this request.
customer_postcodestringRequiredPostcode number or Zipcode row ID applied to all SKUs in this request.
Request body
{"collection": 100, "skus": "JBMS310BK,HPLAP001,DLLAT002", "store_id": "W411", "customer_postcode": "4500"}
Response
{"code": 200, "data": {"success_count": 2, "error_rows": [{"sku": "DLLAT002", "error": "Duplicate SKU"}]}, "status": 1}

Notes

All SKUs in a single call share the same store_id and customer_postcode. To mix stores or postcodes, make separate calls or use the bulk CSV endpoint. Duplicates within the collection are reported in error_rows and skipped without aborting the batch.

Bulk Create SKUs (CSV)

POST
https://multicartapi.com/api/v1/schedules/officeworks/sku/create/bulk/
API Key or Session Token

Upload a CSV file to bulk-add SKUs; each row may specify a different store and postcode.

curl "https://multicartapi.com/api/v1/schedules/officeworks/sku/create/bulk/" \
  -X POST \
  -H "x-api-key: YOUR_API_KEY" \
  -F "collection_id=101" \
  -F "[email protected]"

Parameters

ParameterTypeRequiredDescription
collection_idintegerRequiredCollection ID to add SKUs to.
csvfileRequiredCSV file. Required columns: sku, customer_postcode, store_id.
Request (multipart/form-data)
multipart/form-data. Form fields: collection_id (integer). File field: csv — CSV with header row: sku,customer_postcode,store_id. Example data row: JBMS310BK,4500,W411
Response
{"code": 200, "data": {"success_count": 48, "error_rows": [{"row": 12, "sku": "BADSKU99", "error": "Invalid store_id"}]}, "status": 1}

Notes

CSV columns are sku, customer_postcode, store_id. Each row can have a distinct postcode and store, unlike the create/multiple/ endpoint. Postcode is resolved by zipcode string value — it must match a Zipcode record for the user under the officeworks.com.au domain. Australian postcodes must be 4 digits. Rows with an unresolvable store or postcode are added to error_rows and skipped.

List SKUs

POST
https://multicartapi.com/api/v1/schedules/officeworks/sku/list/
API Key or Session Token

List all SKUs in an Officeworks collection with pagination.

curl "https://multicartapi.com/api/v1/schedules/officeworks/sku/list/" \
  -X POST \
  -H "x-api-key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"collection_id": 100, "skip": 0, "limit": 20}'

Parameters

ParameterTypeRequiredDescription
collection_idintegerRequiredCollection ID to list SKUs for.
skipintegerOptionalNumber of records to skip (pagination offset).
limitintegerOptionalMaximum number of SKU records to return.
Request body
{"collection_id": 100, "skip": 0, "limit": 20}
Response
{"code": 200, "data": {"total": 150, "skip": 0, "limit": 20, "items": [{"id": 77, "sku": "JBMS310BK", "store_id": "W411", "customer_postcode": "4500", "collection": 100}]}, "status": 1}

Notes

The body parameter is collection_id (not collection). The landing docs incorrectly show { "collection": 100 } — using that key will fail. Response is always paginated with a total count wrapper.

Get SKU

POST
https://multicartapi.com/api/v1/schedules/officeworks/sku/get/
API Key or Session Token

Retrieve a single SKU record by its row ID.

curl "https://multicartapi.com/api/v1/schedules/officeworks/sku/get/" \
  -X POST \
  -H "x-api-key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"sku_id": 77}'

Parameters

ParameterTypeRequiredDescription
sku_idintegerRequiredSKU row ID (the id field returned by create or list).
Request body
{"sku_id": 77}
Response
{"code": 200, "data": {"id": 77, "sku": "JBMS310BK", "store_id": "W411", "customer_postcode": "4500", "collection": 100}, "status": 1}

Notes

Owner-scoped — returns 404 if the SKU row does not belong to the authenticated user's collection.

Update SKU

POST
https://multicartapi.com/api/v1/schedules/officeworks/sku/update/
API Key or Session Token

Partially update an existing SKU record's code, store, or postcode.

curl "https://multicartapi.com/api/v1/schedules/officeworks/sku/update/" \
  -X POST \
  -H "x-api-key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"sku_id": 77, "store_id": "W055", "customer_postcode": "3000"}'

Parameters

ParameterTypeRequiredDescription
sku_idintegerRequiredSKU row ID to update.
skustringOptionalNew SKU code value.
store_idstringOptionalNew Officeworks store ID. Must exist in the stores table.
customer_postcodestringOptionalNew postcode number or Zipcode row ID.
Request body
{"sku_id": 77, "store_id": "W055", "customer_postcode": "3000"}
Response
{"code": 200, "data": {"id": 77, "sku": "JBMS310BK", "store_id": "W055", "customer_postcode": "3000", "collection": 100}, "status": 1}

Notes

All update fields are optional — only supplied fields are changed. At least one of sku, store_id, or customer_postcode should be provided; an empty update is accepted but a no-op.

Delete SKU

POST
https://multicartapi.com/api/v1/schedules/officeworks/sku/delete/
API Key or Session Token

Permanently delete a SKU record from a collection.

curl "https://multicartapi.com/api/v1/schedules/officeworks/sku/delete/" \
  -X POST \
  -H "x-api-key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"sku_id": 77}'

Parameters

ParameterTypeRequiredDescription
sku_idintegerRequiredSKU row ID to delete.
Request body
{"sku_id": 77}
Response
{"code": 200, "data": "SKU deleted successfully.", "status": 1}

Notes

Deletion is permanent and not reversible. Owner-scoped — the SKU must belong to the authenticated user. Deleting a SKU does not affect previously generated result files.