Update a store
Replaces a store’s directory fields WHOLESALE — this is not a patch. ALWAYS read the store first, apply your change to the object you got back, and send the whole thing. An omitted field does not keep its stored value: id, name, city and region are required (omitting one is a 400), and active is OPTIONAL WITH A DEFAULT OF true — so omitting active when updating a closed store silently REOPENS it for trading. A ‘just rename this store’ call that sends only the required fields will do exactly that. Conversely, setting active:false takes a live store out of the network (tills, transfers and reporting all read the flag), so confirm either direction with the operator. The body’s id is required by validation but IGNORED: the path storeId is merged in afterwards and wins, so send the same value in both and never expect a body id to move a store. 404s for an unknown store — updating never implicitly creates one. PERMISSION TRAP (see solya-pos#950): the route guard accepts pos.settings.manage, but the use-case additionally asserts the kernel config:manage permission and NO pos.settings.* scope maps to it, so a principal authenticated by scopes alone clears the guard and then 403s inside the use-case.
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
1
