Rendorerendore.ai

Why your volume discount disappears at Shop Pay or Apple Pay

Updated August 2026 · about a 5 minute read

The discount shows correctly in the cart. The customer taps Shop Pay, Apple Pay, or Buy it now — and pays full price. Nothing errors, nothing is logged, and you usually find out weeks later from an order that looks wrong. This is one of the most commonly reported problems with Shopify pricing apps, and the cause is almost always the same.

The mechanism

Accelerated checkout buttons skip your cart page. That single fact explains the whole failure.

If a discount is calculated by JavaScript running in your theme, then it only exists where that JavaScript runs. Your cart page runs it, so the number looks right there. But an express checkout button hands the line items straight to Shopify's checkout, and your theme's script was never part of that path. The price the buyer pays is whatever Shopify itself thinks the line costs — which is the undiscounted price.

The same reasoning explains the related failures people report:

The rule underneath it: anything decided in the browser is a suggestion. Only what Shopify calculates is binding.

How to confirm this is your problem

  1. Open your store in a private window and log in as a test customer who should get the discounted price.
  2. Add enough units to trigger the discount and confirm the cart shows it.
  3. Now go back to the product page and press Buy it now instead of Add to cart.
  4. Look at the price on the checkout screen. If it is the full price, your discount is being calculated in the theme.

A second, faster test: add the item, then complete checkout with Shop Pay. If the total changes between cart and checkout, you have found it.

How to fix it

Use a discount Shopify itself computes

Shopify's own automatic discounts are evaluated as part of checkout, so they survive express payment. If your pricing is simple enough to express as an automatic discount — a percentage off a collection above a minimum quantity, say — this is free and it is reliable. The constraints to know: a minimum quantity pools across every qualifying item in the cart rather than per product, and a store can have at most 25 active automatic discounts.

Use an app that runs as a Shopify Function

Shopify Functions are small programs that run on Shopify's infrastructure inside the pricing pipeline. A discount computed there applies everywhere a price is computed — cart, checkout, express checkout, draft orders — because it is not attached to any page. Apps built this way also add nothing to your storefront, so they cannot slow it down and they leave nothing behind when removed.

When you are comparing apps, ask support one question: “Is the discount applied by a Shopify Function, or by JavaScript in my theme?” Vendors answer this honestly, and it predicts this entire class of bug.

If you are staying on a theme-based app

Some merchants hide the accelerated checkout buttons on affected products so buyers are forced through the cart. It works, and it costs you conversion — express checkout exists because it converts better. Treat it as a stopgap, not a fix.

What to do about orders already affected

Check completed orders for lines that should have been discounted and were not. If you find them, the honest move is to contact those buyers first rather than wait for them to notice — in wholesale especially, a quietly overcharged trade customer is a lost account. Then decide whether you are refunding the difference or crediting the next order.

We build Pricebook, a wholesale pricing app that runs as a Shopify Discount Function for exactly this reason. But if native automatic discounts cover what you need, use those — they are free, and they survive express checkout just as well.