Promotions & Rewards
A program says: when an order has these items in this quantity or amount, give these items free. The Sales Order checks every open program when you press Reward or Save, and adds the free lines it earns. Programs have limits across orders, so a scheme can stop when its budget is used.
What it is for
A scheme run on paper is applied by hand and forgotten on half the orders. A program here is applied by the order itself, the same way on every order, and keeps count of what it has given.
The one rule people get wrong: a program applies only to orders in its currency, dated between its Start Date and End Date, and with a matching Pricing Group. An order that has a Pricing Group sees only programs of that Pricing Group; an order without one sees every program of its currency.
Every field in plain words
Header Information
| Field | What it means | What to put |
|---|---|---|
| Program | The program code | Required, unique |
| Name | The program name | Required, unique |
| Type | What kind of program | Promotions or Buy X Get Y. See Not supported below for the other types offered |
| Type Condition | Where the free quantity goes | Inclusive: the free quantity is taken out of an existing paid line of the same item. Exclusive: a new free line is always added. Shown for Promotions and Buy X Get Y; empty means Exclusive |
| Condition Rule | How several conditions combine | Promotions only, required. Matrix or Single Line, see below |
| Currency | The program currency | Required |
| Pricing Group | Only orders of this pricing group | Optional |
| Special Indicator | The indicator the free lines carry | Required. A scheme indicator must have a discount of 100 % |
| Start Date / End Date | When it runs | An empty End Date runs for ever. Start cannot be after End |
| Block | Stop the program | A blocked program is ignored |
Condition (Promotions only)
| Field | What it means | What to put |
|---|---|---|
| Calculation Rule | How the reward grows with the order | Required. See The maths below |
| Rule Limit Quantity / Rule Limit Amount | The most a condition can count, across all orders | 0 for no limit |
| Reward Limit Quantity / Reward Limit Amount | The most that can be given, across all orders | Quantity for product rewards, amount for discounts. 0 for no limit |
| Delivery Condition | When a free item may be delivered | Regardless of the main item (the default), only once the main item is partly delivered, or only once it is fully delivered. The item issue enforces it |
With Matrix, the header limits apply to every condition and reward. With Single Line, each condition line carries its own.
Rules: the conditions
| Column | What it means | What to put |
|---|---|---|
| Minimum Qty / Minimum Amount | What the order must reach | One of the two must be more than zero. Either one reached is enough |
| Tax Condition | Whether the minimum amount counts tax | Included or Excluded. Anything but Excluded counts the tax |
| Item Relation | Which order lines count | Item: the items listed under the line. Item Group: items of the groups listed. All Items: every item line |
| Point Grant / Point On | Buy X Get Y only: points earned, and what they are earned on | Required for Buy X Get Y. Points per order, per amount spent, or per quantity |
With Single Line, the reward columns (Reward Type, Quantity Reward, Item, Unit, limits, Delivery Condition, Discount %, Discount Category) sit on the condition line itself and the Reward tab is hidden.
Reward
| Column | What it means | What to put |
|---|---|---|
| Reward Type | What is given | Free Product: a free line. Free Product as Discount: a priced line with a 100 % discount in the Discount Category |
| Exchange Points | Buy X Get Y only: points one reward costs | Required for Buy X Get Y |
| Quantity Reward | Free quantity per qualifying step | More than zero for product rewards |
| Item No / Item Variant / Unit | The free item | Required for product rewards. Empty Unit takes the item's sales unit |
| Discount % / Discount Category | For Free Product as Discount | The category is required; the % is set to 100 |
| Line Text | Text for the free line |
How an order earns a reward
Only the order's own item lines count: not free lines, not lines carrying a Special Indicator, not lines a reward created.
- Matrix. Every condition must be met. The reward grows with the condition the order meets least well.
- Single Line. Each condition is checked alone, and gives its own rewards.
- Buy X Get Y. Each condition met adds points: the Point Grant per order, or per unit of amount spent, or per unit of quantity. The rewards whose Exchange Points the points can pay for are offered, scaled by points ÷ Exchange Points.
When more than one reward is possible the order asks you to pick; otherwise it applies the reward at once. Changing the quantity, price or item of a line that earned a reward removes that line's rewards and works them out again.
The maths
For a condition reached with total T against its minimum M, a reward of Quantity Reward Q gives:
| Calculation Rule | Free quantity |
|---|---|
| Prorate | Q × T ÷ M, rounded up |
| Unit Related | Q × the whole number of times M fits in T |
| Whole Units | Q × T ÷ M when T is an exact multiple of M; otherwise nothing |
| None | Q |
Example: buy 10 cartons, get 1 free. An order of 25 cartons gets 3 with Prorate, 2 with Unit Related, nothing with Whole Units.
Limits. Each saved order records what it used of each condition and what it received. A new order sees only what is left after the other orders: a condition whose Rule Limit has less left than its minimum gives nothing; a reward with a Reward Limit Quantity gives at most what is left; a discount reward whose Reward Limit Amount is used up gives nothing. Deleting an order gives its share back.
How to configure it
- Tick Required Promotion & Rewards on the sales setting.
- Create the program: type, currency, special indicator, dates.
- For Promotions, pick Condition Rule and Calculation Rule, and set the limits.
- Add the conditions, with their items or item groups.
- Add the rewards.
- Save. Programs can also be imported from a template, and cloned.
Scenarios
- A beverage distributor: buy 10 cases, get 1 free, up to 5,000 free cases this quarter. Promotions, Matrix, Unit Related, one condition Minimum Qty 10 on the item, one Free Product reward of 1 case, Reward Limit Quantity 5,000.
- Buy a phone, get a cover free, but ship the cover only with the phone. Exclusive, reward the cover, Delivery Condition only once the main item is fully delivered.
- Points for every 1,000 spent, redeemable for gifts. Buy X Get Y, Point On amount spent, Point Grant per unit, rewards with Exchange Points.
Not supported
- Coupons, Loyalty Cards, Discount Code, Next Order Coupons. These types can be chosen, but no sales screen asks for a coupon or a code. Use Promotions or Buy X Get Y.
- A plain Discount reward. The order screens turn rewards into product lines only. Give the discount through Free Product as Discount, or through the price list's discount group.
What it is connected to
- Sales Order and Sales Order Journal - apply the programs.
- Item Issue To Sales Order in Inventory - enforces the Delivery Condition.
- Sales and Distribution Setting - switches the engine on.
If something looks wrong
- "Program cannot be empty.", "Program Name cannot be empty.", "Program Type cannot be empty.", "Currency cannot be empty." - fill them.
- "Special Indicator '...' must have Discount Percentage of 100%" - pick a scheme indicator with a 100 % discount.
- "Condition Rule cannot be empty." / "Calculation Rule cannot be empty." - required for Promotions.
- "Start Date cannot be greater than End Date" - fix the dates.
- "Condition Rules - Line ID: ... - Minimum Quantity or Minimum Amount cannot be zero." - give one.
- "... Point Grant is mandatory.", "... Point On is mandatory.", "... Exchange Points is mandatory." - Buy X Get Y needs them.
- "Reward - Line ID: ... - Reward Type is mandatory.", "... Rewarded Quantity should be greater than zero.", "... Item is mandatory.", "... Unit is mandatory.", "... Discount Category is mandatory.", "... Discount Percentage is mandatory." - complete the reward line.
- "Same Program Code already exists" / "Program with the same name already exists" - change the code or name.
- "... is invalid. Valid values are: ..." and the other "is invalid" messages - an imported value does not match a list. Use one of the values named.
- The order earns nothing - check currency, dates, Block, the order's Pricing Group, and whether the limits are used up. Lines with a Special Indicator never count.