A valid request URL is required to generate request examples{
"id": "store-1:sku-espresso-1kg",
"storeId": "store-1",
"productId": "sku-espresso-1kg",
"version": 1,
"priceCents": 1500
}{
"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
}
}Set a store price override (prix magasin / surcharge)
Upserts a store-scoped override (prix magasin) for a (store, sku): a first write inserts at version 1, a later write goes through optimistic concurrency. The override is keyed on the SELLABLE-UNIT id, carried as productId. An optional validity window (validFrom/validTo, ISO-8601, validFrom before validTo) bounds when it applies; higher priority wins when several overlap. expectedVersion is REQUIRED: send 1 for a first write, then the version the previous write returned (or the one you read from the list), e.g. { storeId: 'store-1', productId: 'sku-espresso-1kg', priceCents: 1400, expectedVersion: 1 } — it is enforced only once the override exists. Requires the kernel price:override grant (403 without). 409s on a stale expectedVersion: re-read the override and resend with its current version.
A valid request URL is required to generate request examples{
"id": "store-1:sku-espresso-1kg",
"storeId": "store-1",
"productId": "sku-espresso-1kg",
"version": 1,
"priceCents": 1500
}{
"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
}
}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.
Body
110 <= x <= 90071992547409910 <= x <= 90071992547409910 <= x <= 9007199254740991^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$Response
The persisted override identity + its bumped version.
The persisted override identity + its bumped version.
Composite store:sku override id.
Store the override applies in.
Sellable-unit id the override is keyed on.
The version the write landed at (bumped on update).
-9007199254740991 <= x <= 9007199254740991The persisted override price in cents.
0 <= x <= 9007199254740991
