Limitations of stacking discount codes at checkout

Learn how the option to distribute order level discounts to the line level can be configured

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

Stacking at checkout

Discount Ninja allows users to show a discount code field at checkout (2) when Discount Ninja promotions (1) have been applied to the checkout:

This option requires the use of the Discount Ninja Sales Channel free companion app, cf. this article.

This allows customers to "stack" a Shopify discount code (2) on top of Discount Ninja promotions (1) at checkout.

Limitations

There are two situations where the discount code field, while available, will be pre-filled by Discount Ninja. In these situations, customers can only replace the discount code with another code. They cannot add an additional code.

These situations are:

  • Free shipping: when a free shipping promotion is applied to the checkout, customers cannot stack an additional discount code on top of it

  • Order-level discounts: when using order-level discounts, customers cannot stack an additional discount code on top of it

Workaround for limitations

There is no workaround for free shipping, unfortunately.

When order-level Discount Ninja promotions are applied to the checkout, however, the app can "distribute" the order-level discounts to the line level to free up the discount code field.

This can be configured in the app. In the menu, go to Settings > General > Advanced and find this option:

There are two caveats:

  • When free shipping is offered via Discount Ninja, the app will override this setting and distribute the order level discount to the line items to be able to offer free shipping with a discount code.

  • When standard Shopify discount codes are applied to the cart on top of Discount Ninja promotions, the app will override this setting and not distribute the order level discount to the line items.

The following example illustrates how distribution works:

If you buy:

  • Line 1 - Product A: $50

  • Line 2 - Product B: $100

  • Subtotal: $150

And you provide a discount of 10% on the total order (i.e. an order level discount).

Then the discount is $15 and the discounted subtotal is $135.

So the cart shows:

  • Line 1 - Product A: $50

  • Line 2 - Product B: $100

  • Subtotal: $150

  • Discount: $15

  • Discounted subtotal: $135

If you use the option to show the discount field at checkout and you enable the option to "distribute" order level discounts to the line items at checkout (i.e. set it to Yes), then the following happens:

  • The app has calculated that a discount of $15 is to be applied

  • Instead of showing this discount on the subtotal, it shows it on the lines of the order; this is necessary to allow users to add a Shopify discount code at checkout

  • The app applies the discount to the most expensive line (or lines if the value of the discount exceeds the value of the line)

So the checkout shows:

  • Line 1 - Product A: $50

  • Line 2 - Product B: $100 - $15 = $85

  • Subtotal: $135

  • Discount code field: empty

If you use the option to show the discount field at checkout and you disable the option to "distribute" order level discounts to the line items at checkout (i.e. set it to No), then the checkout shows:

  • Line 1 - Product A: $50

  • Line 2 - Product B: $100

  • Subtotal: $150

  • Discount code field: $15 discount applied

  • Discounted subtotal: $135

Did this answer your question?