A cashier sees “discount applied”, but the cart total hasn't changed. Or an extension reads 25 as a cash saving when it means 25%. Two October updates make Shopify POS discounts worth an immediate check if your stores use POS UI extensions. Here's what changed, which apps need attention, and how to test the result before staff have to explain a pricing mismatch to a customer.
What changed in Shopify POS discounts?
Shopify published two separate developer notices on 7 October 2026. They concern different parts of the same checkout interaction: whether an app knows its cart change succeeded, and whether it interprets a percentage discount correctly.
In the POS UI extensions API version 2026-10 update, cart mutations reject when Shopify POS doesn't confirm that the cart changed. Earlier API versions resolve those mutations regardless of whether POS applied the write. Apps that adopt 2026-10 must handle rejected promises for every cart mutation they call. Apps on 2026-07 and earlier are unaffected by this breaking change.
Separately, Shopify POS 11.15 corrects percentage discount values. For a 25% discount on a $200 line item, Discount.amount now returns 25. POS 11.14 and earlier returned 50, the monetary amount deducted.
The cart-write change depends on the extension's API version. The percentage-value correction depends on the Shopify POS app version. Treating them as one upgrade risks leaving half the problem untested.
Why we'd prioritise this over another conversion app
The supplied Signalbuy conversion guide recommends finding where shoppers get stuck and fixing purchase blockers. That's a useful principle beyond the online storefront. At a physical checkout, contradictory prices create a problem that another promotional widget won't solve.
Our view: if your extension applies member discounts or displays savings, checking its behaviour deserves priority over adding another incentive. The issue is concrete enough to reproduce, and the merchant can define a clear pass condition: the extension's message must agree with the actual cart.
These notices don't establish that every Shopify POS store has a discount problem. They identify specific changes for extensions. A merchant without custom or third-party POS UI extensions shouldn't commission a rebuild on the strength of these announcements.
Start with an inventory of the affected extensions
Ask your developer or app vendors which installed extensions write to the POS cart and which read discount values. Include private tools built for store staff. An extension that only displays a savings summary can need the percentage correction even if it never applies a discount itself.
- Record device versions: note the Shopify POS version on the devices used for your test and rollout.
- Record extension API versions: confirm whether each extension uses 2026-10 or an earlier version.
- Map cart writes: identify every action that changes the cart, including fees and discounts where applicable.
- Map discount readers: find calculations and labels that consume Discount.amount for Percentage discounts.
Give this list an owner. Store operations should describe the real cashier workflow; the developer should identify the relevant code paths. Neither can complete the audit alone.

A successful request isn't enough to confirm a cart change
The cart-mutation update fixes a distinction that matters to staff. Under the earlier behaviour described by Shopify, an app could treat a resolved mutation as success even when POS hadn't applied the write. That could produce a success message for a fee or discount absent from the cart.
For extensions adopting API version 2026-10, developers need explicit failure handling. But catching an error and hiding it isn't a useful fix. Staff need to know whether to continue or inspect the cart.
Design the failure state before the retry button
We recommend that extensions keep the action pending until the outcome is known, then show success only after confirmation. If the write rejects, the message should say that the change couldn't be confirmed and direct staff to check the cart. Avoid an unconditional “Applied” message after the request finishes.
Automatic retries need care. Before retrying a cart action, inspect the current state and decide whether repeating the operation could create an unwanted additional change. Replacing a discount and adding a fee may require different recovery logic.
Our preferred acceptance test is simple: a developer simulates a rejected mutation, and a store manager follows the recovery instructions without coaching. If they can't tell what happened, the error handling isn't finished.
Shopify POS discounts: keep percentages separate from money
The percentage correction is easy to underestimate because the returned value is still a number. A calculation can continue to run while producing the wrong answer.
Use Shopify's example as a controlled test: a $200 line item with a 25% discount. The discount rate is 25, the saving is $50, and the discounted line value is $150 before any other adjustments. On POS 11.15, Discount.amount for that Percentage discount returns the rate, 25.
An extension that formats this field directly as currency could now display a $25 saving. Code that previously converted the returned monetary deduction back into a percentage could also calculate the wrong rate.
A percentage rate and a monetary deduction are different data types in business terms, even if both arrive as numbers. Use explicit internal names such as discountPercentage and discountMoney rather than passing an ambiguous amount through every calculation.
Shopify says the correction applies to cart-level and line-item percentage discounts, including manual, app-applied and automatic discounts exposed with type Percentage. It affects current state and subscriptions, as well as the listed cart and line-item discount surfaces. Checking only the screen shown when the extension first opens won't cover updates while the cart changes.
Don't fix ambiguity with a numerical guess
A rule that guesses whether a value is money or a percentage based on its size is fragile. Both can be small numbers. Use the discount type and the documented behaviour for the supported environment.
If devices remain on different POS versions during rollout, ask the developer for an explicit compatibility plan. The two changelogs don't justify assuming that an extension API upgrade alone fixes percentage interpretation.

A checkout test plan store teams can actually run
Use a controlled test environment and known product prices. Record the POS version, extension version and expected result for each case. Keep the starting cart simple enough that a person can verify the maths.
- Percentage baseline: test the $200 line with a 25% discount. Confirm the extension distinguishes the rate from the $50 deduction.
- Discount sources: test manual, app-applied and automatic Percentage discounts wherever your workflow exposes them.
- Scope: check line-item and cart-level discounts separately, including a cart with multiple lines.
- Cart updates: change quantity or remove a line. Confirm the extension refreshes its displayed information.
- Rejected write: verify that a failed mutation produces a useful message rather than a success state.
- Repeated action: tap again during a slow response and confirm the extension handles the interaction safely.
Also run a fixed-amount discount as a regression check. The reported correction concerns Percentage discounts, but a shared formatting function may serve several discount types.
For completed test transactions, compare the final cart with the order and receipt. This is our recommended end-to-end validation, not a claim that Shopify has reported receipt errors.
What to ask your POS app vendor
Send the vendor both changelog links. Ask which extension API version their app uses, whether it reads Percentage discount amounts, and how it handles rejected cart mutations when adopting 2026-10.
Request evidence for the relevant test cases, rather than accepting “compatible with Shopify POS” as the full answer. A vendor should be able to explain its supported device versions and the cashier experience when a cart change fails.
Don't replace a useful app just because Shopify changed an API contract. A maintained extension with clear recovery behaviour may remain the right choice. Replacement becomes a reasonable discussion if the vendor can't explain its calculations or leaves staff guessing after a failed action.
Takeaways
- Audit extensions that write to the cart or read percentage discounts.
- Handle rejected cart mutations before adopting POS UI extensions API version 2026-10.
- Check percentage interpretation on Shopify POS 11.15 independently of the API upgrade.
- Approve the release only when the extension's messages and savings figures agree with the actual cart.
Sources
- Cart mutations reject unconfirmed writes in POS UI extensions 2026-10
- POS UI extensions now return percentage values for percentage discounts
- How to Improve Conversion on Shopify | CRO Guide - Signalbuy.AI
Want this handled for you?
We're a Shopify Premier agency and this is the work we do every day: performance, CRO, and store builds that pay for themselves. Book a free store review and we'll show you the three fixes we'd ship first.
Frequently asked questions
What changed for percentage discounts in Shopify POS 11.15?
For Percentage discounts, Discount.amount now returns the percentage rate rather than the monetary deduction. A 25% discount on a $200 line returns 25; POS 11.14 and earlier returned 50.
Why do cart mutations reject in POS UI extensions API 2026-10?
In API version 2026-10, cart mutations reject when Shopify POS doesn't confirm that the cart changed. Apps adopting that version must handle rejected promises for every cart mutation they call.
Does the cart-mutation breaking change affect older extension API versions?
Shopify says apps using POS UI extensions API version 2026-07 and earlier are unaffected by that breaking change. The percentage-value correction in POS 11.15 is separate and needs its own compatibility check.
How should merchants test Shopify POS discount extensions?
Use known prices to verify percentage rates and monetary savings separately. Check cart-level and line-item discounts, cart updates and rejected writes. Confirm that staff-facing messages agree with the actual cart before approving a release.


