DF Quantity Tiers — Documentation
Install, configure and use DF Quantity Tiers: quantity discount display, per-tier add, cart upsell, B2B mode, JSON-LD and statistics.
Overview and requirements
DF Quantity Tiers turns PrestaShop’s native quantity discounts into a clear, clickable selling block. The module introduces no new pricing logic: it reads the quantity-based specific prices already configured in your catalog and stages them as cards or a table, with an add-to-cart button for each tier.
- Compatible with PrestaShop 8.0 to 9.x, the Classic theme and derived themes.
- PHP 7.4 to 8.3.
- Multistore and multilingual (FR/EN/ES/DE/IT).
- No file overrides: native hooks only.
Tiers come from Catalog > Product > Pricing > Specific prices, the “Starting at quantity” field. If a product has no quantity-based specific prices, the block is not shown for that product.
Installation
Install the module like any PrestaShop module:
- Download the
dfquantitytiers-1.1.0.ziparchive from your customer account. - In the back office, go to Modules > Module Manager.
- Click Upload a module and drop the archive.
- Once installed, click Configure.
On installation, the module registers its hooks, creates its statistics table and pre-fills a block title translated into all five languages. Your existing quantity discounts appear immediately on the relevant product pages.
Upgrading from 1.0.0
Upgrading to 1.1.0 is done normally from the Module Manager. The built-in upgrade script creates the statistics table, registers the new cart-page hook and applies the default values of the new options (tax mode, JSON-LD, cart upsell, statistics, packaging labels). No manual action is required and your existing configuration is preserved.
General configuration
The configuration page gathers all display settings:
- Block title: text shown above the tiers, translatable per language.
- Layout: “Cards” (recommended, one card per tier) or “Compact table” (one row per tier).
- Position on the product page: below the buy block (
displayProductAdditionalInfohook, default) or directly under the price (displayProductPriceBlockhook). - Accent color: applied to the “Best deal” tier, badges and buttons.
- Savings display: as a percentage, an amount, or both.
- Show tier total price: adds the total for the tier quantity.
- Show the “per unit” tier: displays the base price as a first comparison tier.
The tier with the strongest per-unit discount automatically receives the “Best deal” badge. When the customer changes the quantity, the card matching their choice is highlighted in real time.
Tax mode (B2B)
The tax mode determines whether tier prices are shown excluding or including tax:
- Automatic: follows the display setting of the current customer group (standard PrestaShop behavior).
- Force tax-excluded: always shows prices excluding tax, with an “excl. tax” label next to each unit price. Ideal for a professional store.
- Force tax-included: always shows prices including tax, with an “incl. tax” label.
The chosen mode applies both to the product-page cards and to the cart upsell block.
Packaging labels
You can attach a business label to each quantity, such as “case” or “pallet”. In the Packaging labels field, enter one mapping per line in the quantity=label format:
12=Case of 12
48=Half pallet
96=Pallet
The label is shown under the quantity of the matching tier. This field is translatable: fill it in for each language using the language selector in the form.
Next-tier upsell
Two encouragement mechanisms are available and can be enabled independently.
On the product page
A progress bar shows a message such as “Add 3 more unit(s) to save 15%”, recalculated in real time based on the entered quantity. When the customer reaches the most advantageous tier, the message switches to “You’re getting the best discount!”.
On the cart page
For each cart product where a higher tier is still reachable, the module shows a block under the cart reading “Add N more units to reach X / unit”, with a one-click add button. The button uses PrestaShop’s native cart update mechanism, then refreshes the page. If no higher tier is reachable, no block is shown.
Structured data (JSON-LD)
When enabled, the module adds an AggregateOffer JSON-LD markup on the product page, with one offer per tier and its associated eligible quantity. This helps search engines understand your quantity-based price ranges.
If your theme or another SEO module already outputs a full Offer markup for your products, disable this option to avoid duplicate markup flagged in Search Console.
Per-tier click statistics
When enabled, every click on a tier add button is recorded anonymously: product, combination, quantity and discount of the clicked tier. No personal data and no cookies are used, which makes the feature GDPR compliant.
The configuration page shows a 30-day dashboard: total number of clicks and the top product / tier / discount combinations clicked. This data helps you calibrate your discounts by identifying which tiers actually trigger add-to-carts.
FAQ and troubleshooting
The block doesn’t appear on a product
Check that the product has specific prices with a starting quantity greater than 1, and that those prices apply to the current customer group, currency and country. The base tier alone does not trigger the display if no discount tier exists.
The add button doesn’t work with my theme
The module relies on the standard add-to-cart button of the Classic theme. On a heavily customized theme, make sure the quantity field and add button follow PrestaShop’s standard markup.
Does it work with combinations?
Yes. Tiers are recalculated for each combination and the block updates automatically when the variant changes, without a page reload.
What happens on uninstall?
Uninstalling cleanly removes the hooks, configuration variables and statistics table. No residual data is left in the database.