These are explicit permissions: they must be checked one by one in External integrations; existing integrations do not receive them automatically.
Price lists
is_default: true) comes first, then the rest by name. Errors: 404 Branch not found (missing branch_id or from another business).
Prices in a list
Sorted by product name. Errors:
404 Price list not found (nonexistent or from another business); 422 validation.
Update prices
Creates or updates a list’s prices in bulk (synchronization from the store). Requirespricing.write.
- If the product already has a price in the list it is updated; otherwise, it is created.
- Products that do not belong to the list’s branch (or do not exist) are not applied and are returned in
rejected; the rest are saved. - If a
product_idis repeated in the array, the last one is used.
Promotions
Sorted from highest to lowest
priority. Errors: 404 Branch not found.
Calculate a cart’s promotions
Rules
- Only active promotions whose start and end dates include today are evaluated.
- Only one promotion wins per item: the highest-priority one that applies to the product (by product, category or brand) and meets
min_quantity. percentagediscounts a percentage;fixed, a fixed amount (not exceeding the base);override_price, the difference down to the special price.- A combo applies when all of its products are in the cart: it discounts the sum of their unit prices minus
combo_price. - If the branch has no valid promotions, items are returned without promotion fields and
order_discountsis empty. - The calculation does not save anything: use it to show the final price and then send the discounts when creating the sale.