Skip to main content

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.

A shopper's webshop basket and the same goods rung up at the Stockholm till both come to 280.00 SEK including 56.00 VAT, with the same 2-for-160 sock promotion, because both are priced by the same Checkout Engine.

⚠ 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.

Your channel sends requests to Unified Basket Manager and gets the priced basket back in the response. UBM reads item data from product data and each store's country from the business units, prices the basket with the Checkout Engine, which returns price and tax and is the default, or the Promotion Engine, which returns price only, and at checkout creates a customer order.

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

A basket holds six parts. Changing the items, the coupons or the loyalty membership reprices the basket, because they change what the goods cost. The customer, the fulfillments and the tenders are stored without repricing.

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