Error
A valid request URL is required to generate request examples{
"id": "prod-drill-bosch",
"version": 2,
"view": {
"id": "prod-espresso",
"name": "Espresso Blend 1kg",
"brandId": "solya",
"category": "cafe",
"active": true,
"serialTracked": false,
"ageRestricted": false,
"warrantyMonths": 0,
"rentable": false,
"serviceable": false,
"taxonomy": {
"Famille": "Épicerie"
},
"skus": [
{
"skuId": "sku-espresso-1kg",
"skuGroupId": "espresso",
"uom": "piece",
"active": true,
"axes": {
"Format": "1kg"
},
"barcodes": [
"3401579800005"
],
"references": []
}
],
"price": {
"currency": "EUR",
"minNetCents": 10825,
"maxNetCents": 10825
}
}
}{
"error": {
"code": "VALIDATION_FAILED",
"message": "<string>",
"statusCode": 123,
"fieldErrors": [
{
"field": "<string>",
"message": "<string>"
}
]
}
}{
"error": {
"code": "VALIDATION_FAILED",
"message": "<string>",
"statusCode": 123
}
}{
"error": {
"code": "VALIDATION_FAILED",
"message": "<string>",
"statusCode": 123
}
}{
"error": {
"code": "VALIDATION_FAILED",
"message": "<string>",
"statusCode": 123
}
}{
"error": {
"code": "VALIDATION_FAILED",
"message": "<string>",
"statusCode": 123
}
}{
"error": {
"code": "VALIDATION_FAILED",
"message": "<string>",
"statusCode": 123
}
}{
"error": {
"code": "VALIDATION_FAILED",
"message": "<string>",
"statusCode": 123
}
}Catalog
Update a product (produit)
Replaces a product from a full draft plus the expectedVersion you last read; the path id is authoritative over any body id. Returns the product at the bumped version. There is NO separate deactivate route for products (unlike brands/taxonomy/kits): to archive one, PUT the draft with active: false (and re-activate with active: true). 404s for an unknown product; 409s on a stale expectedVersion.
PUT
/
v1
/
products
/
{id}
Error
A valid request URL is required to generate request examples{
"id": "prod-drill-bosch",
"version": 2,
"view": {
"id": "prod-espresso",
"name": "Espresso Blend 1kg",
"brandId": "solya",
"category": "cafe",
"active": true,
"serialTracked": false,
"ageRestricted": false,
"warrantyMonths": 0,
"rentable": false,
"serviceable": false,
"taxonomy": {
"Famille": "Épicerie"
},
"skus": [
{
"skuId": "sku-espresso-1kg",
"skuGroupId": "espresso",
"uom": "piece",
"active": true,
"axes": {
"Format": "1kg"
},
"barcodes": [
"3401579800005"
],
"references": []
}
],
"price": {
"currency": "EUR",
"minNetCents": 10825,
"maxNetCents": 10825
}
}
}{
"error": {
"code": "VALIDATION_FAILED",
"message": "<string>",
"statusCode": 123,
"fieldErrors": [
{
"field": "<string>",
"message": "<string>"
}
]
}
}{
"error": {
"code": "VALIDATION_FAILED",
"message": "<string>",
"statusCode": 123
}
}{
"error": {
"code": "VALIDATION_FAILED",
"message": "<string>",
"statusCode": 123
}
}{
"error": {
"code": "VALIDATION_FAILED",
"message": "<string>",
"statusCode": 123
}
}{
"error": {
"code": "VALIDATION_FAILED",
"message": "<string>",
"statusCode": 123
}
}{
"error": {
"code": "VALIDATION_FAILED",
"message": "<string>",
"statusCode": 123
}
}{
"error": {
"code": "VALIDATION_FAILED",
"message": "<string>",
"statusCode": 123
}
}Authorizations
Authorization: Bearer <token>. Accepts EITHER a Keycloak access token (scopes-in-token) OR an opaque POS session token; both resolve to the same pos.* scope vocabulary the route guards enforce.
Path Parameters
The product id (e.g. prod-espresso).
Minimum string length:
1Body
application/json
Minimum string length:
1Minimum string length:
1Minimum string length:
1Minimum string length:
1Minimum array length:
1Show child attributes
Show child attributes
Required range:
0 <= x <= 9007199254740991Required range:
0 <= x <= 9007199254740991Show child attributes
Show child attributes

