You don't pick a promo from a list. You build it.
An effect, a scope and a condition combine, and the rule hands back the sentence of what you just built. Scroll down and watch one come to life: a cosmetics distributor's volume curve.
First, what it does: a percentage, an amount, a fixed price, a 3-for-2, shipping, a combo.
Then, where it lands: the whole cart, a category with its children, single products or variants.
And when it triggers: the volume curve draws itself as you load the tiers.
Only then, to whom and when. A discount for paying by transfer is a filter, not a side agreement.
And before publishing, you test it: what applies, how much and why, without touching the store.
Three pieces that combine, not a menu of canned promos.
Most platforms hand you a list of prebuilt promos and you have to squeeze your business into one. Here each rule is composed: you pick what it does, where it lands and what has to happen for it to fire. Out of that come the usual promos — and also the ones that were on nobody's list.
- Seven effects: percentage, fixed amount, fixed price, NxM (buy 3 pay 2), cross promotion (get B when you buy A), shipping discount and a closed combo price.
- Five conditions: none, minimum quantity, minimum amount, tiers or a complete combo. And you choose where the minimum is counted: on the discounted products, on a single line, across the whole cart, or product by product.
- With several products, you choose which one takes it: all equally, the cheapest, the most expensive or spread proportionally. That's the difference between a 3-for-2 that gives away the expensive one and one that gives away the cheap one.
- The rule reads itself back: as you build it, what you just configured is written out in plain language underneath. If the sentence doesn't say what you meant, neither does the rule.
"More quantity, better price" is three different policies, not one.
You load the tiers —from 6 units 5%, from 12 units 10%— and then choose how they apply. The three modes give different numbers from the same tiers, and each matches a real way of selling wholesale.
- Retroactive: on reaching a tier, every unit takes that discount. The classic: you hit 12, all 12 go at 10%.
- Closed pack: the tier is a pack with its own unit price. Order 111 units and the system builds 1×100 + 1×10 + 1 loose, each block at its price; the remainder goes at the normal price. That's how a warehouse actually sells.
- Marginal: like tax brackets. The first units at one rate, the next ones at another. The average price climbs gradually instead of jumping at the tier.
- And where the tier is measured: across the whole cart, on a single line, on the discounted products, or product by product — there each item reaches its own tier, which is the "per-item curve" most businesses use.
The agreement that today lives in a WhatsApp thread, inside the rule.
In wholesale a discount is almost never for everyone: it's for one price list, for those paying by transfer, for the ones who haven't bought in three months. All of that is a filter on the rule, not a side agreement someone has to remember to apply.
- By price list, segment and tax status: only the Professional list, only the Perfumery segment, only VAT-registered businesses. Or the reverse: everyone but those.
- By payment method: the discount for paying by transfer or cash stops being a separate calculation and applies on its own, in the cart, with nobody working it out at the end.
- By history, with your own thresholds: new customer (how long since they signed up), returning (how many orders in how many days) or lapsed (how many days without buying). A win-back promo needs no hand-built list.
- Validity that repeats itself: always, between two dates, on scattered calendar dates, or recurring — days of the week, days of the month, months, even a time window. The Friday discount turns itself on and off.
The hard problem isn't one promo: it's twenty at once.
A wholesale store ends up with the seasonal clearance, the volume curve, the transfer discount and the combo of the month all living in the same cart. Each rule declares how it gets along with the others, and the list order decides who wins when two collide.
- Three ways to coexist: stacks with everything (10% by category + free shipping, the customer gets both), competes with similar ones (when several fight over the same product the biggest saving wins and the rest of the cart is untouched), or replaces them all (an exclusive promo).
- Cascading, with the math right: each rule computes on the list price or on the already-reduced price. 20% and then 10% on the already-reduced price gives 28% total, not 30%. That gap shows up at month's end.
- Rules that depend on others: "free shipping only if you already have the 2-for-1" is a declared dependency, not a coincidence. And the other way round: a rule can be blocked when another one is already applying.
- Ceilings so nobody abuses it: how many times it can apply in one cart, and how much a single customer can save with that rule per week, month or year. Once they hit the cap, it stops applying to them.
- Priority is dragged: the row order in the list decides who wins when a discount is non-stacking. You change it by dragging, not by editing a rule.
A miscalculated promo gets discovered at checkout. Or before.
The wizard's last step isn't save: it's test. You build an imaginary cart with a customer, a moment and some products, and the simulator tells you which rules apply, how much they take off and why that one and not the other. It creates no orders and doesn't touch stock.
- With whichever customer: the same cart with a Professional-list customer and with an anonymous one gives different results. Both get tested before publishing.
- And at whichever moment: if the rule runs Friday afternoons, you don't have to wait until Friday to know it works.
- It tells you why, not just how much: which rule won, which one got blocked and on which price each was computed. That's where cascading and stacking mistakes show up.
- And the rule can sit inactive: as a draft it's saved but applies to no cart. You publish when the simulator gave you what you expected.

