Apply conditional order discounts using native cart rules. Create BOGO deals, buy N get M free, spend thresholds, quantity tiers, cheapest item or line free, cross-product offers and free gifts. Visual policy builder, cart simulator and audit log. For PrestaShop 9.x, 8.x and 1.7.x. Ideal for multistore shops and complex promotions.
Conditional Order Discounts is an enterprise-class PrestaShop module revolutionizing promotion management. It extends native cart rules with a powerful visual engine, enabling shops to create highly complex, multi-layered discount policies effortlessly. Users can leverage over 30 condition fields and 20 advanced promotion formulas, including BOGO, quantity tiers, and free gifts. The module features a real-time cart simulator for precise testing, ensuring flawless campaign execution. Additionally, a comprehensive analytics dashboard and full audit log provide unparalleled visibility and control over all active promotions, ensuring professional and transparent discount management.
PrestaShop cart rules are great for flat coupons. They fall apart the moment you need buy 3 get 1 free, cheapest item free, every €100 spent → €10 off, cross-product BOGO or quantity tiers — all conditioned on customer group, category mix or cart total. Conditional Order Discounts is enterprise class software for promotion management: visual policies, 20 promotion formulas, nested condition trees, cart simulator, analytics dashboard and full audit log. Combine conditions and discounts freely — nested AND/OR trees, multiple rules per policy, multiple policies per cart — and in practice you get virtually unlimited room to build advanced discount programs. No code. No spreadsheet hacks. Real discounts applied through native PrestaShop cart rules.
These are the capabilities that turn discount management from a cart-rule guessing game into a managed promotion engine. Built as enterprise class software for shops that run real campaigns — not just a single coupon code.
BOGO, spend thresholds, quantity tiers, cheapest item free, cross-product deals, free gifts, shipping discounts and more — pick from a visual tile grid, not a blank JSON field.
Native cart rules: flat % or amount only
30+ cart and customer fields with nested AND/OR groups. Target groups, countries, products, categories, spend levels, time windows and compound product qty rules.
Others: one global minimum cart value
Discounts sync as real PrestaShop cart rules (COD-*). Compatible with checkout, order totals, invoices and multistore. Customers see a proper discount line.
Others: fake line-item hacks
Pick a real cart and customer from your shop. See exactly which policies match, which rules fire and what discount amount applies — before any customer is affected.
Others: test in production and pray
Stack all matching rules, first wins, priority cascade, highest discount only, or unique codes — per policy and globally. Control how multiple rules combine.
Others: unpredictable stacking
KPI cards, discount trend charts (daily, weekly, monthly), policy breakdowns and recent audit entries. See which promotions actually run in your shop.
Others: no visibility after setup
Every discount applied, policy change, simulation run and cart sync logged with timestamp and detail preview. Export when marketing or finance asks why a cart got a discount.
Others: black box math
Download any policy as JSON, upload to staging, duplicate with one click. Move Black Friday setups between shops without rebuilding from scratch.
Others: rebuild every campaign manually
Add free products via spend thresholds, cross-product BOGO or instant gift policies. Gifts sync as native gift cart rules or inline cart discounts — your choice.
Others: manual free product lines
This is not one discount type per shop. It is a combinatorial engine — and that is what unlocks advanced promotion programs native cart rules cannot touch.
30+ condition fields × 20 promotion formulas × unlimited policies and rules = in practice, virtually unlimited possibilities for advanced discount programs.
PrestaShop tells you when a cart rule applies. It does not tell you how to calculate buy-3-get-1-free, cheapest-line-free or repeating spend steps. That gap is where shops give up — or hire a developer.
Visual condition tree: customer group, country, cart total, products in category, time of day, order history and more. Nested AND/OR groups. No SQL. No PHP.
Pick a promotion tile: BOGO, spend %, quantity tiers, cheapest item free, product pair, free gift… Each type opens a dedicated visual config — scope, quantities, thresholds, product pickers.
Set merge strategy per policy. Stack loyalty + clearance + shipping promo. Or let highest discount win. Global cap prevents runaway totals. Simulator confirms before go-live.
Why this matters: You are not duct-taping cart rules together. You are running enterprise class software — a promotion engine where conditions and formulas mix freely across policies and rules. Stack them, nest them, scope them — the calculator prices 20 different deal types from real cart lines, and merge strategies plus optional global cap keep the result under control.
Every type is a ready-made calculator. Scope by all cart, specific products, category or manufacturer. Mix & match within scope where the formula allows.
Same-SKU packs — buy 3 get 1 free, mix & match in category.
Discount on extra units — e.g. buy 2, third at 50% off.
Cross-product BOGO — buy shampoo, get conditioner free.
Percent off another product when trigger SKU is in cart.
N cheapest units in scope get full discount. Classic retail promo.
Lowest-value cart line in scope fully discounted.
Percentage when cart or product spend hits threshold.
Fixed amount above spend threshold.
Repeating step discount — every €100 → €10 off.
Add a free product when spend threshold is reached.
Instant gift when policy conditions match — no spend rule needed.
1 from list A + 1 from list B → fixed discount per pair.
Higher qty in scope → higher discount %. Stair-step savings.
% off selected product lines — cheapest or most expensive first.
Percentage adjustment on order total when conditions match.
Flat discount on order total — e.g. €10 off.
Scoped % discount — category, manufacturer or hand-picked SKUs.
Flat discount on scoped products only.
Waive delivery cost when policy fires.
Partial discount on delivery cost only.
Conditional Order Discounts adapts to how your shop actually sells. Here are campaigns you can launch in minutes — not weeks of custom development.
Scope = Summer Sale category. Promotion = Buy N get M free. Mix & match any 4 items — cheapest unit is free. Classic retail math, automatic.
No scope limit. 1 cheapest unit in cart gets full discount. Perfect for "add anything, smallest item is on us" campaigns.
Scope = Outlet category. Lowest-value cart line (full row) discounted. Moves slow stock without blanket % off everything.
Buy any phone case → get screen protector free. Different SKUs, linked lists, gift added via native cart rule.
Condition: cart total ≥ €150. Promotion: percent off cart. VIP customers only? Add customer group to the condition tree.
Repeating spend-step formula. €340 cart = €30 off automatically. No coupon code. No manual calculation.
Spend gift promotion adds your sample SKU when threshold met. Great for cosmetics and food shops.
"Just add free gift" + condition: customer logged in + member group. Welcome gift on every qualifying visit.
Product pair fixed off: 1 from shirts list + 1 from ties list → €15 off per pair. Stacks for multiple pairs in cart.
2+ units = 5%, 5+ = 10%, 10+ = 15% in selected category. Encourages bulk without manual tier cart rules.
Condition on cart total. Promotion = free shipping. Combine with product discount policy using merge strategy.
% off shipping promotion. Condition excludes wholesale group. Retail customers get half-price delivery.
Scope = manufacturer. Percent off products. Condition: date range for weekend flash. Simulator verifies before Friday midnight.
Line % off with "most expensive first" selection. Upsell incentive — premium SKU gets the visible discount.
Condition: delivery country DE + logged in + 3+ past orders. Fixed €5 off cart. Precision targeting native cart rules cannot express.
Policy A: 10% off cart. Policy B: cheapest item free. Merge = stack all. Global cap = max €50 total discount. Controlled generosity.
Build and simulate on staging. Export policy JSON. Import on live shop. Duplicate for Cyber Monday variant. Audit log tracks every change.
Every feature explained in plain language for shop owners and marketing teams. This is enterprise class software — deep enough for complex campaigns, clear enough that you never need a developer for day-to-day promotion work.
A policy is a named promotion campaign — your Black Friday stack, your VIP loyalty deal, your clearance weekend. Each policy holds a condition tree (who qualifies) and one or more discount rules (what they get). Create unlimited policies, drag-sort by priority, activate or pause individually without touching code.
Each rule can run in Simple mode (flat % or fixed amount on cart, products or shipping) or Promotion mode with access to all 20 formulas. Per-rule settings include discount code, priority, min/max discount caps, date range (valid from / valid to), optional rule-level conditions and multilingual checkout label shown on the cart line.
Stop on first match ends evaluation after the first qualifying policy — useful when campaigns must not overlap. Merge strategy per policy controls how multiple rules inside one policy combine: stack all discounts, first wins, priority cascade, highest discount only, or unique codes. A global default merge strategy and global discount cap in Settings protect your margin across the whole shop.
Policies list view shows status, merge strategy, rule count and quick actions. Duplicate, export JSON, import from file, or toggle active — all from the policies panel with every change written to the audit log.
The condition builder is a nested AND/OR tree editor — the same pattern used in professional rule engines, rendered as drag-friendly groups in your back office. Add a group, pick a field, choose an operator, set a value. Nest groups for logic like: (VIP group OR 5+ past orders) AND (cart total ≥ €100) AND (category Summer Sale has 3+ items).
30+ condition fields cover the full cart context: cart total, product subtotal, shipping cost, product count, unique SKU count, weight, existing cart rules count, customer order count, lifetime spend, day of week, hour, date, postcode, currency, country, invoice country, zone, customer group, carrier, payment module, logged/guest status, products, categories, manufacturers, suppliers, virtual/physical flags, customization and existing discount detection.
Compound fields combine entity + threshold in one condition — e.g. product #123 qty ≥ 3, category #45 line total ≥ €50. Operators include equals, not equals, greater/less than, between, in list, not in list, contains, starts with, regex, empty and not empty.
Product, category, manufacturer and group pickers use built-in autocomplete search. A live preview sentence explains what the tree matches. Power users can toggle raw JSON for copy-paste between environments. Conditions re-evaluate on every cart sync — add to cart, change qty, login, change address — the engine reacts immediately.
Switch a rule to Promotion mode and the flat value fields are replaced by a tile grid of 20 promotion types, grouped by family: adjustments, Nth-unit deals, quantity tiers, spend promos, BOGO, line discounts, gifts and product pairs. Click a tile — only the fields relevant to that formula appear.
The scope selector defines which cart lines enter the calculation: entire cart, hand-picked products, whole categories or manufacturers. BOGO types get buy/get product lists with visual pickers. Spend types get threshold and step inputs. Tier types get a stair-step table. Pair types get list A + list B. Cheapest item free gets a free unit count field. Line promos let you pick cheapest-first or most-expensive-first.
Behind the UI, ConorderdisPromotionCalculator delegates to dedicated math: unit pool expansion for BOGO cycles, line sorting by total value for cheapest-line-free, repeating step arithmetic for spend ladders. The result is a precise discount amount — not a rounded guess from a generic cart rule.
Promotion config syncs bidirectionally with JSON. Import a policy from staging, open the visual builder, tweak one threshold, save — structured data stays consistent. Rule summary chips in the admin show the active formula at a glance without opening the editor.
The Simulator tab is a three-step workflow against real data in your database — not a mock cart. Step 1: search carts by ID, customer name or email. Step 2: pick a cart from the live list (shows customer, email, cart total, last update). Step 3: run evaluation and read the full result breakdown.
Results show which policies matched, which were skipped (and why), per-rule calculated amounts, gift lines that would be added, free shipping flags and the final total discount. Optional customer filter narrows the cart list to one account — ideal for reproducing a support ticket.
Every simulation run is logged in the audit log with event type simulation_run, cart ID, actor (employee) and result snapshot. Marketing can verify a campaign before enabling it. Support can explain why a specific customer cart did or did not get a discount — without placing a test order on the live shop.
Use the simulator after every policy edit, before Black Friday go-live, and when importing policies from staging. It is the safety net that separates enterprise promotion management from "change and hope".
The Dashboard tab is your promotion control room. KPI cards over a selectable period (30 / 90 / 180 / 365 days) show: total discount applications, orders affected, rounded discount total in shop currency, and active policy count. Numbers come from the audit log — real events, not estimates.
Chart.js trend charts visualize discount activity across three granularities: daily (configurable window), weekly and monthly. Switch the default chart type in Settings. A pie chart breaks down applications by discount code so you see which COD-* rules actually fire in production.
The dashboard also surfaces recent audit entries — last policy changes, last simulations, last front-office discount applications — for at-a-glance troubleshooting without opening the full log. Analytics period, chart day/week/month windows and default chart type are all configurable under Settings → Analytics.
For agencies and multistore operators: the dashboard answers the question marketing always asks — "Is our promotion actually running?" — with data, not gut feeling.
The dedicated Audit log tab is a full event journal — not a debug file buried in server logs. Every row stores timestamp, event type, actor (employee name, customer name, or SYSTEM), human-readable summary, linked order reference, discount code, amount, cart ID and policy ID.
11 event types are tracked: discount_applied (live cart sync), order_discount (order placed), policy_created, policy_updated, policy_deleted, policy_toggled, policy_duplicated, policy_imported, policy_exported, settings_updated and simulation_run. Each event records its source: front office, back office or system.
Click View on any row to open a detail modal with the full JSON snapshot — applied discount lines, policy diff, simulation output or settings change payload. Discount applications store a discount_snapshot so you can reconstruct exactly what the customer saw at checkout time.
The list supports PrestaShop native CSV export for finance and compliance reviews. Joined columns show order reference, customer name and employee name without manual cross-referencing. When a customer asks "why did I get this discount?", the answer is one search away.
On the order page in back office (displayAdminOrder hook), a panel shows which Conditional Order Discounts policies contributed to that order — policy name, discount code, amount and snapshot. Historical truth survives even if the policy is later edited or deleted.
Policies are portable JSON documents. Export downloads the full policy — condition tree, all rules, promotion configs, merge strategy, positions — ready for version control or handoff to another shop. Import uploads a JSON file and creates a new policy (or updates, depending on workflow) with audit log entry policy_imported.
Duplicate clones a policy with one click from the list actions menu — copies every rule, renames with a suffix, logs policy_duplicated. Perfect for creating "Black Friday v2" from "Black Friday v1" without rebuilding 15 rules by hand.
Typical agency workflow: build and simulate on staging → export JSON → import on production → run simulator again → enable. Black Friday setups move between client shops in minutes. Every transfer is traceable in the audit log.
The Settings tab centralizes shop-wide behaviour. Master enable/disable switch. Global merge strategy default for new policies. Global discount cap — maximum total discount per cart across all policies (0 = unlimited). Free items as gift toggle — materialize free products as native PrestaShop gift lines vs inline discount.
Disable auto-add prevents automatic cart rule injection when you want manual control. Debug log writes verbose engine traces for support. Analytics section configures default chart period, daily/weekly/monthly windows and default chart type.
Every settings save logs settings_updated to the audit log with before/after snapshot. No silent configuration drift.
Discounts materialize as native PrestaShop cart rules prefixed COD-*. They appear in cart summary, checkout, order confirmation, invoices and credit slips — exactly like manually created cart rules. No theme hacks. No fake negative product lines.
The engine hooks into actionCartSave, product add/remove, front controller init, order validation and cart rule validation — recalculating whenever the cart context changes. Cart state is persisted in conorderdis_cart with applied snapshot, gift snapshot and linked cart rule ID for idempotent sync.
Policies are shop-scoped (id_shop) for multistore setups. Each shop in your group can run independent promotion stacks. PrestaShop 9.x, 8.x and 1.7.x share one codebase via the built-in compatibility layer.
Multilingual checkout labels per rule (conorderdis_rule_lang) ensure the discount line reads correctly in every active shop language.
Cart evaluated. Units expanded. Promotion calculated. Native cart rule applied. Every step traced in audit rows. This is enterprise class software — here is the engineering behind the discount your customer sees.
~25,600 PHP · ~4,000 JavaScript · ~750 Smarty templates · ~1,300 CSS. Engine, builders, dashboard, simulator, cart rule manager and admin UI.
Engine, calculator, unit pool, condition tree, cart rule manager, audit log, dashboard, policy duplicator, promo materializer and more.
Ready-made translation files for the back office and module interface. From English and German to Polish, Spanish, French, Italian and markets across Europe and beyond.
Dashboard, Policies, Settings, Simulator, Audit log and Updates — each a self-contained panel with dedicated JS bundles.
Dedicated calculators for BOGO, spend, tiers, lines, gifts, shipping and cart/product adjustments.
Cart, customer, delivery, product and compound qty/amount rules with nested AND/OR logic trees.
Discount applied, order discount, policy CRUD, import/export, duplicate, toggle, settings and simulation.
Stack all, first wins, priority cascade, highest discount, unique codes — per policy and global default.
conorderdis_policy for campaigns, conorderdis_rule + conorderdis_rule_lang for rules and labels, conorderdis_cart for cart sync state, conorderdis_log for audit journal.ConorderdisPolicy, ConorderdisRule, ConorderdisCartState, ConorderdisLog with full CRUD and multishop awareness.actionCartSave, actionValidateOrder, actionValidateCartRule, displayAdminOrder, product-in-cart delete hooks and more.lib/prestashop9compatibility.php — one codebase across PrestaShop 1.7.x, 8.x and 9.x.Conditions decide who qualifies. Promotion formulas decide how much. Native cart rules deliver the discount. Audit log proves what happened. That is the engineering contract Conditional Order Discounts keeps on every cart update.
31,000+ lines of code across 100+ module files, 31 translation packs and v of continuous development. Not a weekend coupon plugin. Enterprise class software your checkout, finance team and marketing department can rely on when promotions go live and someone asks why a cart got a discount.
Conditional Order Discounts automates advanced promotion management, transforming complex discount strategies into native PrestaShop cart rules. Its visual builder and 20 promotion formulas optimize campaign setup, reducing manual effort and ensuring precise, auditable discount application without coding.
Conditional Order Discounts empowers your PrestaShop store with over 20 dynamic promotion types like BOGO, quantity tiers, and free gifts. This module enables precise targeting with visual condition builders, directly boosting conversions and significantly increasing sales by attracting customers with compelling, flexible offers.
Drawing on 15 years of PrestaShop experience, Conditional Order Discounts is an enterprise-class engine. It tackles promotion complexities native rules can't, offering 20 formulas, a visual builder, and a crucial audit log for robust, transparent discount management.
Conditional Order Discounts offers extensive customization with its visual engine, enabling virtually unlimited discount programs. Combine 30+ conditions and 20 promotion formulas via nested logic and 5 merge strategies, perfectly fitting your store's unique needs.
The Conditional Order Discounts module grants full access to its source code, allowing for advanced modifications and seamless integration without obfuscation. This enterprise-class software offers powerful promotion management with a one-time payment, unlimited time usage, and a year of free updates, ensuring long-term flexibility.
The Conditional Order Discounts module is constantly updated to ensure its advanced promotion formulas and condition builder remain fully compatible with PrestaShop versions. Your one-time payment grants a perpetual license. Enjoy a full calendar year of free updates, with renewals available at up to 90% discount thereafter.