Skip to main content

POS UI extensions now return percentage values for percentage discounts

Shopify POS 11.15 corrects the value returned by Discount.amount for Percentage discounts to match the Cart API contract. Extensions that used this value as money need to update their logic.

What changed

A 25% discount on a $200 line item now returns amount: 25. POS 11.14 and earlier returned amount: 50, the monetary amount deducted.

This applies to cart-level and line-item percentage discounts, including manual, app-applied, and automatic discounts exposed with type: 'Percentage'. It affects the Cart API's current state and subscriptions, lineItems[].discounts, cartDiscount, cartDiscounts, and the cartLineItem contextual API.

This fix also prevents a percentage discount's monetary allocation from being reinterpreted as a percentage when an extension passes cart state back through bulkCartUpdate.

FixedAmount and Code discounts are unchanged, including percentage-based discount codes exposed with type: 'Code'.

Who's affected

The change applies to all POS UI extensions API versions. Keeping an older api_version does not preserve the previous behavior.

What to do

  1. Check Discount.type before interpreting amount, and update currency displays, savings calculations, loyalty points, and integrations that treat Percentage amounts as money.
  2. Test cart-level, line-item, and automatic percentage discounts, plus any bulkCartUpdate workflows, on POS 11.15 or later.
  3. If your extension supports POS 11.14 or earlier, handle the previous behavior until those devices are upgraded.
Was this page helpful?