Skip to main content
These are explicit permissions: they must be checked one by one in External integrations; existing integrations do not receive them automatically.
Designed for online stores and other sales channels: query a branch’s price lists, synchronize prices in bulk and calculate a cart’s promotions with the same engine as the FileXpress POS, so the final price matches across all channels.

Price lists

The default list (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). Requires pricing.write.
Rules
  • 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_id is 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.
  • percentage discounts 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_discounts is empty.
  • The calculation does not save anything: use it to show the final price and then send the discounts when creating the sale.

Errors