Branch price overrides were already applied at the till, in cash sales
and in M-Pesa, but nothing could set them.
- Products -> Branch prices (/admin/prices): pick a branch and set its
price for any product; setting it back to the default removes the
override, and "Use default" resets it. Branch managers see their own
branch's prices read-only.
- /api/branch-prices: GET (owner: any branch; manager: own), PUT and
DELETE (owner only). Branch and product must belong to the business;
prices must be above zero; who changed a price is recorded.
- Branch pricing is a plan feature, as the Growth plan already
advertised: Growth and Enterprise, plus any business on its free
trial. A paid Starter business keeps any prices set during its trial
and can reset them, but cannot set new ones.
- The catalogue view on the Products page always shows default prices;
the till's view shows what the branch charges.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>