Checkout page discounts

I have two discounts on the checkout page: one is an order discount, and the other is a shipping discount. When I add the shipping discount, the order discount is removed, and when I add the order discount, the shipping discount is removed. Both discounts belong to different apps. What could be the issue?

Hi @Amith_M

This forum is dedicated to Shopify App and Theme Developers, the Shopify Community Forum
is better suited for these kinds of questions.

But that said, I know that under the hood, automatic app discounts have the option to combine with other order/shipping/product discounts.

The developers behind these two apps should surface this as an option in your discounts.

I would contact them directly for support on where to find this option for the two separate discounts in these two different apps. It should be an option they can provide.

Hello Amith.

I saw your post on experiencing an issue where applying a shipping discount removes an existing order discount—or vice versa—on your checkout page, the core problem is that both discounts are being applied through different apps that conflict with each other, likely because they each modify the checkout in a way that overwrites the other. Most commonly, this happens when both apps use draft orders or custom checkout logic to apply their discounts. Since platforms like Shopify only allow one draft order or checkout modification at a time, when one app applies its discount, it effectively erases the changes made by the other. To fix this practically, you need to choose one of the following solutions: either use a single discount app that supports both order and shipping discounts within the same flow; or switch to a manual discount code system where customers enter a promo code at checkout—one for order discount and one for shipping, if your platform allows stacking codes. If you’re on Shopify Plus, you can use Shopify Scripts or Functions to build a custom discount rule that combines both types. Alternatively, reach out to the developers of each app and ask if they offer compatibility settings to avoid overwriting each other’s discounts—some apps have a toggle to disable draft order creation or to integrate more smoothly with others. The most reliable solution is to consolidate your discounts under a single app that can handle both scenarios to prevent logic conflicts during checkout.

I hope this helps.

Hi @David_Holly @Dylan , i created this both the app and i have code for both . i can’t combine the discount in one app. both app has different functionality .

Both discount apps are removing each other’s effects at checkout because they are independently modifying the cart or checkout object, likely by creating their own draft orders or checkout sessions, which inherently overwrite each other since most platforms, including Shopify, only allow one source of truth at checkout. Since both apps are under your control and can’t be merged into one due to distinct functionality, the solution is to coordinate their logic through a shared layer without combining the apps themselves. The most reliable fix is to implement a unified discount application strategy where both apps pass their discount data—such as order discount or shipping discount—via cart attributes, metafields, or a shared service layer. One app or a central service will be responsible for reading both discount inputs and composing a single checkout payload that includes both discount types. This prevents either app from overwriting the other, ensures both discounts are respected, and keeps the apps logically separate while technically compatible. You can either designate one app as the checkout owner, which reads any discount data set by the second app and includes it before creating the checkout, or you can build a lightweight middleware or shared checkout API that both apps send discount data to, and which builds the final checkout object. This approach requires that both apps stop creating or modifying the checkout independently and instead only contribute discount intent data. Final checkout creation must happen once, with both discounts applied simultaneously to avoid mutation conflicts. If you’re using Shopify, you may also leverage Shopify Functions or Scripts to handle this merging logic cleanly within Shopify’s discount system, provided you’re on Shopify Plus. Whichever method you choose, the essential idea is to stop each app from trying to control the checkout directly and instead have them work cooperatively through shared state or a common handler so that both the order-level and shipping-level discounts can exist in the same checkout flow without conflict.

Try this out Amith