Unified Basket Manager
The Unified Basket Manager (UBM) builds a shopping basket for a digital channel — a webshop, a mobile app, a kiosk — prices it, and converts it into a customer order. Its purpose is omnichannel price consistency: a basket can be priced by the very engine that runs the physical checkout, so the price a customer sees online is produced by the same calculation that would run at the till.
⚠ Which engine prices a business unit is configuration, and one of the two options returns price without tax — see How pricing works before assuming a basket is tax-inclusive.
UBM is a synchronous request/response API. Every call returns the recalculated basket. There is no result to wait for and nothing to subscribe to — see Integrating with UBM.
If you want to…
| …then read |
|---|
| Understand how a basket gets priced, and which engine does it — How pricing works |
| Know what UBM reads, and from where — Data sources |
| Understand baskets, lines, calculated results and statuses — The basket model |
| Turn a basket into a customer order — Checkout |
| Provision a business unit so UBM works at all — Configuration |
| Call the API, and handle its errors — Integrating with UBM |
What a basket holds
A basket is more than a list of products. Each of these is a separate sub-resource with its own endpoints. The first three reprice the basket when they change; the rest are stored without calling a pricing engine, because they do not affect what the goods cost:
- Items — the lines being bought, with quantity and unit of measure (reprices)
- Coupons — vouchers applied to the basket (reprices)
- Loyalty — the membership the basket is priced for, which can unlock member prices and rewards (reprices)
- Customer — who is buying, including contact details
- Fulfillments — how each part of the basket reaches the customer (collection, delivery), which can carry its own charges and its own destination business unit
- Tenders — the means of payment, including authorization data, required before checkout
What UBM does not do
- It does not hold stock or reserve it. A priced basket is not a stock reservation. Availability and reservation belong to the inventory services.
- It does not own the item catalogue. Item names, identifiers and prices come from product master data; UBM reads them per request.
- It does not manage the order after checkout. Once the customer order is created, its lifecycle belongs to the Customer Order service.
API reference
The OpenAPI specification is published at https://unified-basket-manager-api.retailsvc.com/schemas/v1/openapi.json