Commerce Studio · B2B extensions for UCP

ai.commercestudio.b2b.pricing

Draft, version 2026-10-19. Extends dev.ucp.shopping.checkout and dev.ucp.shopping.cart (UCP 2026-08-25). Schema: https://b2b.commercestudio.ai/ucp/schemas/pricing.json.

B2B buyers rarely pay the list price. Each company has a contract price list, negotiated in advance. Procurement wants to see what the contract saves against list.

This extension shows which price list applies, and each line's contract price next to its list price. The agent can then say "at your contract price, saving $1,954.90 against list" and catch a line whose price looks wrong.

Principles

Response field: b2b_pricing

Present on every cart and checkout when the extension is negotiated.

Field Meaning
price_list { id, name }: the contract price list in effect, e.g. "Bushwood Country Club Preferred Pricing"
lines[] One per line item: line_item_id (matches line_items[].id), contract_price, list_price, and quoted_price when an accepted quote applies
list_total Sum of list price × quantity
contract_total Sum of contract price × quantity
quoted_total Sum of quoted price × quantity, when an accepted quote applies
savings list_total minus what the buyer pays (the line items' subtotal)

All amounts are unit or total prices in ISO 4217 minor units, like every UCP amount.

When ai.commercestudio.b2b.quote is also negotiated and a quote is accepted, contract_price stays the buyer's contract price, and quoted_price is what they pay. Without an accepted quote, contract_price equals line_items[].item.price.

Catalog

The extension adds no field to catalog responses. When the buyer is linked, catalog search, lookup and product responses already show the buyer's contract price as the price, and add list_price (or list_price_range) where it differs. A buyer who isn't linked sees list prices.

Callisto on BigCommerce