All Collections
Advanced Topics
Checkout button
Why do some eligible orders not have a discount applied?
Why do some eligible orders not have a discount applied?

Learn why some orders may be missing discounts and how to avoid this

Bart Coppens avatar
Written by Bart Coppens
Updated over a week ago

Ensure the orders are eligible

Before you make any changes, please ensure the order is indeed eligible:

  • Countdown timer: Using a timer can cause discounts not to be applied. When customers visit your shop and one or more offers use timers, then the visitor will need to place the order before the timer runs out. Depending on your settings (Settings > Building blocks > Countdown timer) the clock will reset when they come back to your shop, or not. To check if a countdown timer is in use, check the building blocks associated with your offers.

  • Once per customer: The trigger of a promotion can be configured (Frequency tab) to allow only one order per customer. If the customer has used the promotion to place an order then they will not be presented with that promotion when they come back to your shop.

  • Sticky bar claim button: The call to action button of a sticky bar can be set to "Apply discount". When this is configured the visitor must click the button to unlock the promotion. If they do not click the button, the promotion is not applied to the cart or the checkout.

Check for conflicting apps

Discount Ninja is not compatible with automatic discounts by Shopify.

Discount Ninja is also not compatible with apps that also create a discounted checkout or otherwise need control over the checkout experience.

The dashboard lists the apps that Discount Ninja can find in your theme (even if those apps are deleted). Example:

Subscription products

Discount Ninja, by default, does not handle checkouts that include products that are tagged 'Subscription' to avoid conflicts with subscription apps that require visitors to check out via a custom subscription checkout.

If your products are tagged 'Subscription', but should still be handled by Discount Ninja, then go to the settings of the app and find Settings > General > Checkout and uncheck this option:

Update the script

Ensure you're running on the latest version of Discount Ninja's script by going to the settings of the app. Find Settings > General > Installation status and click the Update button in the "Script" column:

Avoid missed discounted checkouts

Discount Ninja relies on a script on your shop to apply promotions and redirect the visitor to a discounted checkout. In low-bandwidth conditions (for example mobile device on 3G) it is possible that the script takes a few seconds to execute. Visitors who click on the "Checkout" button in the cart before the app has loaded will not receive a discount.

To avoid this, and to create a consistent checkout experience, the app includes the following features:

  • Load as an asset: on some themes, loading as an asset can result in faster loading speed. To configure this, go to Settings > General > Installation status and, at the bottom of the screen, click the "Switch to asset" button:

  • Disable Express Checkout buttons and Buy Now buttons displayed on the product page or the cart: the app cannot apply discounts to checkouts created by Express checkout buttons. To avoid inconsistencies the app by default hides these buttons. You can configure this behavior in Settings > Dynamic Pricing > Checkout buttons.

  • Block checkout button: this feature ensures the checkout button is locked until Discount Ninja has loaded. Typically the button will be locked for a second (or less) only. On poor connections, it may take longer (5 - 10 seconds). We recommend enabling this feature to ensure a consistent checkout experience. You can configure this behavior in Settings > Dynamic Pricing > Checkout buttons.
    Note that the app cannot disable this feature when you delete the app from your Shopify apps lists. To avoid this, if you need to uninstall the app, do so via the Settings of the app (Settings > Subscription > Cancel plan).

Did this answer your question?