Discounts on an order
The kinds of discount an order can carry, where each comes from, and how far it reaches.
A discount on an order is described by three things: what kind it is, where it came from, and how much of the order it covers. Every discount, whether typed in by hand or applied by a campaign, is recorded the same way.
Summary
Type
PERCENTAGE, AMOUNT
Origin
MANUAL, CAMPAIGN, LOYALTY, PRICEREDUCTION
Scope
WHOLE_ORDER, SPECIFIC_LINE, SPECIFIC_LINE_LIST, PRODUCT_LIST
Type
PERCENTAGE
A percentage off.
AMOUNT
A fixed sum off.
Origin — where the discount came from
Origin is what you look at when someone asks why a line is cheaper than the shelf price.
MANUAL
Someone applied it on the order.
CAMPAIGN
A campaign matched. The discount carries the campaign it came from.
LOYALTY
Applied by the loyalty programme.
PRICEREDUCTION
A price reduction on the product itself, rather than a campaign.
Scope — how much of the order it covers
WHOLE_ORDER
The order total.
SPECIFIC_LINE
One order line.
SPECIFIC_LINE_LIST
A named set of order lines.
PRODUCT_LIST
Every line whose product is in a named set.
PRODUCT_LIST and SPECIFIC_LINE_LIST differ in what they are pinned to. A product list follows the products, so a line added later for a listed product is covered. A line list is pinned to the lines that existed when the discount was applied.
What a discount records
Beyond type, origin and scope, a discount on an order carries:
name
What it is called on the receipt
discountCode
The code entered, where one was used
amount
The percentage or the sum, per the type
validTo
When it stops applying
maxUsage
How many times it may be used
discountReasonCode
Why it was given — useful for reporting on manual discounts
campaignUid
The campaign behind it, when the origin is CAMPAIGN
productSkus / orderItemUids
What a PRODUCT_LIST or line-list discount is pinned to
discountReasonCode is worth using consistently. It is the only thing that makes manual discounting reportable after the fact.
Limitations
An order can carry more than one discount, and they are recorded separately rather than collapsed into a single figure.
A discount does not change a product's cost, so it reduces margin rather than reducing the value of your stock — see How cost price is calculated.
Last updated 19.09.2026
Was this helpful?

