Pricing & Discounts · Module 3.6 Module 3.6

Discount Rules Engine

Automatic, condition-based pricing for wholesale buyers. Six discount types, unlimited rules, precise targeting by role or customer group — no coupon codes required. Prices update on product pages, shop listings, and cart in real time.

In plain terms: You set up rules like "all users with the Wholesale role get 10% off everything" or "buy 25+ units of Product X and get 15% off." The rules fire automatically when the conditions match — the customer never needs a code.

6 Discount Types

Percentage off, fixed per-product, fixed cart total, quantity-based percentage, quantity-based fixed, and BOGO (buy X get Y free or discounted).

Precise Targeting

Target by User Role, User List, specific user IDs, specific products, categories, product tags, or Product Lists. Mix and match conditions freely.

Scheduling

Optional start and end date/time on every rule. Flash sales activate and expire automatically. Add a usage limit to cap total redemptions.

Stackable or Exclusive

Configure rules to stack (all matching rules apply) or stop after the first match. Per-rule setting — mix both behaviours across different rules.

Unlimited Tiers

Quantity-based rules support unlimited price tiers: 10–24 units = 5% off, 25–49 = 10%, 50–99 = 15%, 100+ = 20%. Prices update live as cart quantity changes.

Variable Product Support

Rules apply to parent products (all variations get the discount) or specific variation IDs. Variation prices on product pages reflect the discounted rate.

The 6 Discount Types Explained

TypeHow it worksBest for
Percentage Discounte.g. 10% off regular price. Applies to all targeted products for targeted users.Wholesale tier pricing across a whole category or catalogue
Fixed Per Producte.g. $5 off each unit. Applied per item in cart regardless of quantity.Flat-rate promotions, case-specific offers
Fixed Cart Totale.g. $25 off the entire cart. One-time discount on the cart subtotal.Order minimums reward ("spend $200, save $25")
Quantity-Based %Tiered percentage off based on quantity ordered. Set as many tiers as needed.Buy-more-save-more; volume wholesale pricing
Quantity-Based FixedTiered dollar-off per unit based on quantity. Lower unit price as qty increases.Distributor pricing tables with set unit prices per tier
BOGOBuy X of product A, get Y of product B free or at a percentage off.Promotions, bundles, free gift with purchase

Rule Combinations with Other Modules

Discount Rules + User Roles = automatic tiered pricing

Create rules for Bronze (5% off), Silver (10% off), Gold (15% off). Assign customers to roles. Done — no coupons, no manual work per order.

Discount RulesUser Roles
Priority note: Customer-Specific Pricing always overrides Discount Rules. Contract prices for individual customers or companies are never accidentally overridden by rule-based discounts.

Discount Rules + Schedule = auto-expiring flash sale

Set a 20% off flash sale to activate Friday midnight and expire Monday morning. No manual toggling — it activates and deactivates automatically.

Discount RulesSchedule feature
Add a usage limit to cap how many times it can be used, and combine with Conversation Bubbles to show a countdown banner to eligible customers.

Quantity rules + Inventory Rules = enforce minimum & reward volume

Minimum order quantity of 12 (case pack) enforced by Inventory Rules. Discount Rules kicks in at 24+ units with a 5% off tier.

Discount RulesInventory Rules
Customer experience: They must order at least 12. If they order 24 or more, they save 5%. Live cart update shows the discount threshold clearly.

Points + Discount Rules = progressive loyalty

Standard buyers earn points and get basic discounts. As points accumulate, they auto-upgrade to Gold role — which has a better discount rule.

Discount RulesPoints & RewardsUser Roles
Result: The loyalty programme fuels better discount access. No separate "tier upgrade" admin task — the hook does it when the milestone fires.

Key Settings

SettingDescriptionDefault
Rule PriorityLower number = applied first. Set priority per rule to control evaluation order.10
Stop ProcessingIf on, no other rules run after this rule matches. Use to prevent stacking.Off
Usage LimitMaximum total uses across all customers before the rule auto-deactivates.None
Show Savings on CartDisplay "You saved $X" summary on the cart page for matched discount rules.On

Rules are evaluated in priority order. By default all matching rules are stacked (applied together). If any matching rule has "Stop Processing" turned on, no further rules run after it. Use "Stop Processing" on your highest-priority rules to ensure they act exclusively. Customer-Specific Pricing always overrides all rule-based discounts regardless of priority.

Yes. When creating a rule, set the product targeting to "Product List" and select the list. Product Lists are maintained in B2B Commerce Kit → Product Lists and can be reused across many rules. Change the list's contents once and all rules using it update automatically.

Yes, via the woob2b_discount_price filter hook. After all rules are evaluated, the hook lets you return a modified price — e.g. check the product's cost meta and ensure the calculated discount price never goes below it. See the Hooks reference for a code example.