Quantity discount
Enable extension
To enable the Quantity extension please visit: How can I add an Extension?
How does the extension work?
The quantity discount extension adds a new option type "Quantity discount" to the available option types.
Using the option, you can configure tiered discounts that are based on the number of quantities bought.
The total quantity is always re-calculated on the cart level before checkout, this allows to increase the quantity or combine multiple products of the same type to calculate the final discount value.
The app is also aware of the price add-ons and can calculate the correct discount values based on the total product price.
Config
On the product options config, you can find the option type:
Discount quantity
You can add discounts for different quantity levels:
Discount amount
You can either offer percentage based discounts, or absolute price reductions, you can change from percentage to absolute by clicking on the percentage icon:
Note: The absolute amount is deducted for each quantity.
Discount layout
The option will list each discount level. The levels are selectable and will update the quantity to match the level.
In the Advanced tab of the option, you can configure a custom discount template to control which elements are shown on the text:
In the example we removed the {compare} price to only show the new price and the discount amount:
Discount group
The total quantity is always recalculated at the cart level, this is required to find the correct discount level before checking out.
By default the quantity count of the products that have the same product options config are combined when they are in the cart.
If you want to combine other products, e.g you have different option configs but the quantity discount should be applied on the total of all the products, then you can configure a custom group name:
You can also use the following variables into the discount group field:
Variable | Description |
---|---|
{random} | Create a new group for each product in the cart. This ensures that quantities are not combined or summarized within the cart. |
{product} | Use the product ID to summarize the quantity in the cart. Useful if a single config is attached to many different products. |
{variant} | Use the variant ID to summarize the quantity in the cart. Useful if you want to only summarize the quantities of the same variant. |
Product
On the product page the discount option will show the total updated dynamically based on the current price of the product including the add-ons.
The main product price is always displayed as the single quantity price (without quantity discount applied). If you want to update the price to reflect the current quantity, you can add an attribute on your themes product price element for the app to update it based on the total selected quantity:
Description | Selector | Example |
---|---|---|
Total quantity product price including discounts | [data-live-price-quantity=1234] | data-live-price-quantity="{{ product.id }}" |
Single quantity product price including discounts | [data-live-price-quantity-single=1234] | data-live-price-quantity-single="{{ product.id }}" |
Cart
The cart will list the new total with the discounted price. When the quantity is changed, the discount level will be rechecked and updated:
Note: It is not possible to apply additional discounts when quantity discounts are active. The app will auto hide the discount input.
Cart item selectors
By default the app automatically looks for the line item total and adds a "line-trough" style to it and shows the new discounted line total below it.
Using the following manual selectors you can control where the new discounted prices are displayed, including support for showing the discount on the single quantity item:
Description | Selector | Example |
---|---|---|
single quantity discounted price | [data-live-item-final-price-discount] | data-live-item-final-price-discount="" |
total quantity discounted price | [data-live-item-final-line-price-discount] | data-live-item-final-line-price-discount="" |
Checkout
Checkout Extensibility
The recommended setting to use in combination with the Quantity discount extension is Checkout Extensibility. The discount is integrated into checkout and the customer can even enter additional unrelated discount codes:
Minimum order quantity
How can I validate a minimum order quantity?
Draft orders
With draft orders active, the app has full controll over each line item price, each discount will be dynamically applied with right level and value:
Product Add-on
If you disable draft orders, the app will create a unique discount code on each checkout with an absolute discount that is spread over all the valid items on the checkout:
Multiple quantity discounts of different types (amount/ percentage) are automatically combined into single discount code (indicated by ending with S) :