Price Rules & Customer Prices
Beyond the three rate tiers on an item, price rules set a rate, a discount, a free quantity or a pack price for a scope - one customer, a customer group, a trade channel, a territory, everyone - on a target - one item, a brand, a product group (optionally narrowed to a category or sub-category), all products - optionally from a minimum quantity, within dates, within hours of the day. A rule can also discount the WHOLE BILL above a minimum value. A code the customer quotes is not a price rule at all - that is a Coupon. Customer Prices is the same thing seen from one customer's side: their price list.
Where it is in the app
POS page: Master > Price Rules > To Everyone / To Customer. Jewellery shell: Price Rules and Customer Prices under Management. The same dialog also opens from Promotional Offers's toolbar, for the shop that came looking for "20% off a brand this week" there instead. Field-sales order sheets apply the same rules as the counter, including territory- and channel-scoped ones.
The kinds of rule
Every rule is three independent choices - who it is for, what it covers, and what it does - plus optional conditions. Mixing them is what gives one dialog its whole range, from "this chain pays 4% less on this brand" to "happy hour, 12 to 3".
flowchart LR
R[A price rule] --> W[WHO · scope]
R --> T[WHAT · target]
R --> E[WHAT IT DOES · effect]
R --> C[WHEN / HOW · conditions]
W --> W1[One customer]
W --> W2[A customer group]
W --> W3[A trade channel
General Trade · Modern Trade · HORECA]
W --> W4[A territory or any location above it]
W --> W5[Everyone]
T --> T1[One item / variant]
T --> T2[A product group
optionally narrowed to a category,
then a sub-category]
T --> T3[A brand]
T --> T4[All products]
E --> E1[Fixed rate per unit]
E --> E2[Discount - percent or amount]
E --> E3[Pack price - 5 for 20]
E --> E4[Free quantity]
E --> E5[Trade scheme percent
cascaded before the discount]
C --> C1[Minimum quantity slab]
C --> C2[Date window - from / to]
C --> C3[Time-of-day window - HH:mm]
C --> C5[Priority - forces a win]
Line rules and bill rules
Setting a minimum bill amount turns a rule into a different animal: it is matched against the voucher total instead of against a line, and the two kinds never see each other's rows. A bill rule may only discount, as a percent or an amount - a rate, a free quantity, a pack price or a scheme each back-solve against a line (a gross, a quantity, a unit) and a bill rule has no line to solve against, so a row carrying one is treated as half-finished and ignored.
flowchart TD
V[Voucher being priced] --> P1[Line pass · every line]
V --> P2[Bill pass · once, on the total]
P1 --> L1[Rules with NO minimum bill amount
rate · discount · pack · free qty · scheme]
P2 --> L2[Rules WITH a minimum bill amount
discount percent or amount only]
L1 --> O1[(Each line priced)]
L2 --> O2[(One discount on the bill)]
How a rule is picked
flowchart TD
L[Line on a bill: item · qty · customer · clock] --> G{Gates: has an effect · in its dates · in its hours}
G -->|fails any| D[Item's own rate tier for the customer's rate type]
G -->|passes| R{More than one still standing?}
R --> S0[Explicit priority - higher forces a win]
S0 --> S1[Scope: customer, then their group, then their trade channel,
then their territory, then everyone]
S1 --> S2[Target: this item, then product group, then brand, then all products]
S2 --> S3[Within a product group: sub-category, then category, then whole group]
S3 --> S4[Deepest minQty slab the line actually reaches]
S4 --> S5[Lowest id breaks any remaining tie]
S5 --> A[Apply: rate, or discount percent / amount, or pack price, or free qty
plus a trade scheme, cascaded first, if the rule carries one]
A --> T[(Line: price · discount · scheme · free quantity)]
Time-of-day windows
A rule can carry a start and end time as well as a date range - the lunch rate, the late-night rate, the happy hour. Both are "HH:mm", and price rules and promotional offers read them through the same helper, so a rule and an offer written for the same hours start and stop together.
| What you set | What it means |
|---|---|
| Both blank | All day. This is every rule written before the feature existed. |
| Only one filled | Also all day - a half-filled window must not switch off a rule the shop believes is running. |
| 12:00 to 15:00 | Inclusive at both ends, so a bill rung at exactly 15:00 still gets it. |
| 22:00 to 02:00 | End before start crosses midnight - the late-night deal, running until 2am the next morning. |
| The two equal | A single minute, not a whole day. |
Codes are coupons now
A price rule used to be able to carry a coupon code, which stopped it applying by itself until the customer quoted it. Codes have their own screen now - see Bill Coupons - and a price rule always applies itself.
The two answer different questions, which is why they were split: a price rule decides what a LINE costs, off the product, the party and the quantity; a coupon takes a percentage or a flat sum off the BILL once the code is entered. A rule could never express "10% off, up to 500" on a bill total, and a coupon has no business re-pricing one item.
Setting rules
- To Everyone - shop-wide rules: quantity slabs (12+ at wholesale rate), brand or category discounts, seasonal rates.
- To Customer - pick the customer, group, trade channel or (where routes are on) territory, then their special rates per item, brand or product group.
- Product group narrowing - a group rule can be narrowed to one category, then one sub-category within it; the more specific row wins where both would otherwise apply.
- Pack price - "5 for 20": whole packs bill at the pack price, any leftover pieces at the ordinary rate. Not combined with a fixed rate on the same rule.
- Trade scheme - only shown once a sale voucher has scheme columns switched on; a percentage that comes off before the discount, so a 10% scheme plus a 10% discount is 19%, not 20%.
- Making-charge discount (jewellery only) - a discount can be pinned to the making charge instead of the whole line, so "20% off" means the labour, not the metal.
- Minimum bill amount - makes it a bill-level discount instead of a line rule; see above.
- Hours - a start and end time for a rate that only runs part of the day.
- Customer Prices - open a customer and see or edit every rule that applies to them as one price list; print or share it.
- Dates and priority - rules can be scheduled and ranked; a higher priority forces a win ahead of specificity, and an expired rule stops applying without deletion.
Setting a customer’s rate
flowchart TD
A[A customer negotiates a rate] --> B{Just this one customer?}
B -->|yes| C[Rule scoped to them]
B -->|a whole class of customers| D[Put them in a group
rule scoped to the group]
B -->|every outlet of this trade kind| D1[Rule scoped to their trade channel]
B -->|everyone on a route| D2[Rule scoped to their territory]
C & D & D1 & D2 --> E{On everything, a brand, or some items?}
E -->|one item| F[Target the item]
E -->|a whole product group| G[Target the group
optionally narrow to a category or sub-category]
E -->|a brand| G2[Target the brand]
F & G & G2 --> H{Only above a quantity?}
H -->|yes| I[Set a minimum quantity]
H -->|no| J[Applies at any quantity]
I & J --> K[Set dates and hours if it is temporary]
K --> L[Check it: open Customer Prices for them]
Reports
Price List (current rates per item), Customerwise Sales, Product Partywise Summary.