Skip to content

Replace a product's sellable units

PUT
/api/integration/v1/products/{ref}/units
curl --request PUT \
--url https://api.slflo.com/api/integration/v1/products/ITEM-1001/units \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'Idempotency-Key: example' \
--data '{ "units": [ { "factor_to_base": 1, "order_default": false, "unit_ref": "pcs" }, { "factor_to_base": 24, "order_default": true, "unit_ref": "cs" } ] }'

The whole list with factors to the base unit. Needs catalog:write. Send an Idempotency-Key header; a retry with the same key and body answers the first answer again, with Idempotent-Replayed: true.

ref
required
string

Your key for the product — the item number in your ERP.

Example

ITEM-1001
Idempotency-Key
required
string

Your key for this write, at most 100 characters (an order id or journal id works well). Required on every write; kept 7 days. Same key and body: the first answer again. Same key, other body: 422 IDEMPOTENCY_KEY_REUSED.

Media typeapplication/json
object
units
required
Array<object>
object
factor_to_base
required
number
order_default
required
boolean
unit_ref
required
string

Example

{
"units": [
{
"factor_to_base": 1,
"order_default": false,
"unit_ref": "pcs"
},
{
"factor_to_base": 24,
"order_default": true,
"unit_ref": "cs"
}
]
}

Replace a product’s sellable units

Media typeapplication/json
object
data
required
object
entity
required
string
external_ref
required
string
id
required
string
result
required
string

Example

{
"data": {
"entity": "product",
"external_ref": "ITEM-1001",
"id": "P0000001",
"result": "updated"
}
}

An error: the code says what, retryable whether to try again.

Media typeapplication/json
object
error
required
object
code
required

Stable code, e.g. SCOPE_MISSING, UNKNOWN_REFERENCE.

string
details
required

Field-level problems: {field, code}.

Array<object>
object
key
additional properties
string
message
required

What happened and how to fix it.

string
request_id
required

Quote it to support; it finds the server log.

string
retryable
required

Whether the same call may succeed later.

boolean

Example

{
"error": {
"code": "SCOPE_MISSING",
"details": [],
"message": "This client does not hold the invoices:read scope.",
"request_id": "req_01J9X4Q7T2M8P3NRT6V5WZ",
"retryable": false
}
}