xMatix
Sign in Request demo
xMatix
PRODUCTS
SalesField SalesCRMRewardsClaimsInventoryProcurementWarehouse ManagementField ServiceServiceSupportTelephony & MessagingFinance & AccountingPayrollExpense ManagementCommercePortalsAnalytics & ReportingData StudioMobile AppSee all products →
PLATFORM
Platform overviewApp BuilderAutomationIntegrationsSecurity & GovernanceChange ManagementDevelopers
SENSE AI
Sense AI overviewSense AssistSense ControlSense VisionAI StudioTrust & governanceIn Claude & ChatGPTUse cases
SOLUTIONS
FMCG & DistributionManufacturing & Dealer NetworksAutomotive & DealershipsPharma & HealthcareConsumer DurablesAgri-InputsBuilding MaterialsService NetworksWarehousing & 3PLFinancial AccountingERP SoftwareIndia GST ComplianceUAE VAT & e-InvoicingSaudi ZATCA & VATAll solutions →
RESOURCES
Knowledge CenterDeveloper & CLIBlogGuidesWhat is xMatix?Company facts
COMPANY
AboutCareersPartnersEventsContactAuthorsLegal
Sign in Request demo
Home/Docs/Sales/Trade schemes
CONCEPT · Last reviewed

Trade schemes

VIDEO
Trade schemes: setup and applying schemes on an order
A 6-minute walkthrough of this page is coming soon — the written steps below cover the same ground.

A trade scheme in xMatix is a promotional offer — "buy 10, get 1 free", "5% off orders over 50,000" — defined once and applied to documents by the scheme engine. A Scheme carries Scheme Slabs; each slab has Scheme Conditions (what the document must contain) and Scheme Benefits (what the customer gets). The engine evaluates slabs against orders, invoices, credit notes, purchase orders, bills and service orders, applies the qualifying ones, recommends near-misses ("so much more to qualify"), records every application in the Scheme Ledger and enforces budgets and apply-count caps against that ledger live.

Schemes are records of the Scheme entity. In the first-party configuration they belong to the Rewards app; open Schemes there (or from any app that lists the entity). Building and approving schemes is an administrator task; order entry only consumes them.

Find the scheme

All Approved Schemes list showing five schemes with Scheme Type, Application, Partner Account, Branch, Account, Val From and Val To columns
The All Approved Schemes view lists only schemes the engine can evaluate. Scheme Type says which document a scheme fires on, Application says whether it fires by itself or must be applied, and the validity columns bound the document dates it covers.UI captured
  1. 1

    The view switcher: All Approved Schemes hides Draft, Pending Approval and Deactivated schemes, which the engine ignores anyway.

  2. 2

    Scheme Type: Per Sale Order, Per Sale Invoice, Per Sale Order And Invoice, the purchase-side types, or a Per Period variant.

  3. 3

    Application: Auto Apply runs inside the document save; Apply On Selection waits for Apply Scheme on the document.

  4. 4

    Partner Account, Branch and Account scope the scheme; a blank Account means any customer of that company.

  5. 5

    Val From and Val To must cover the document date or the scheme is skipped.

  6. 6

    New creates a Draft scheme header; slabs, conditions and benefits are added from the saved record.

Use the All Approved Schemes view to compare name, Scheme Type, Application, partner and branch scope and validity before opening a record. Only schemes with Status Approved inside their Val From / Val To window are eligible, so this list is the fastest place to distinguish a setup problem from a document-qualification problem.

Read the scheme record

Approved scheme record with the Details tab open: Information (name, type, sequence, application, status), Type (period type, period dates, multiple fulfilment treatment), Eligible Partners and Eligible Accounts sections, under a Draft / Pending Approval / Approved / Deactivated stepper
The Details tab is the eligibility envelope around every slab. Status must be Approved, the type must match the document, the dates must cover it and the partner and account scope must fit before any slab is evaluated.UI captured
  1. 1

    Status stepper: only Approved schemes are evaluated; Deactivated retires one without deleting it.

  2. 2

    Scheme Name and Scheme Type; the type decides which document (or accumulated period) the slabs are tested against.

  3. 3

    Sequence Number orders schemes for evaluation, lowest first.

  4. 4

    Application: Auto Apply or Apply On Selection.

  5. 5

    Multiple Fulfilment Treatment decides what happens when several slabs qualify at once: all, first or last fulfilled.

  6. 6

    Eligible Partners (partner account, partner account group, branch) and Eligible Accounts (account, account group) scope who gets the offer.

Details is the header. Read it before the child tabs, because it decides whether the engine considers any slab at all:

FieldWhat it does
Scheme TypeWhich document the scheme evaluates: Per Sale Order, Per Sale Invoice, Per Sale Order And Invoice, Per Purchase Order, Per Bill, Per Purchase Order And Bill, Per Repair Order, Per Repair Order And Invoice — or a Per Period variant that qualifies on totals accumulated over a scheme period rather than one document
ApplicationAuto Apply runs inside the document save; Apply On Selection only surfaces in qualification and recommendation lists and takes effect when a user runs Apply Scheme
StatusDraft, Pending Approval, Approved, Deactivated. Only Approved is evaluated
Val From / Val ToValidity window tested against the document date; Val To must be later than Val From
Sequence NumberOrder in which schemes are evaluated, lowest first
Multiple Fulfilment TreatmentWhen several slabs qualify on one document: Apply All Fulfilled, Apply First Fulfilled or Apply Last Fulfilled
Period Type, Period Start / End DateFor Per Period types: the accrual buckets; scheme periods are generated when the scheme is inserted
Eligible Partners / Eligible AccountsPartner account, partner account group, branch, account and account group scope; an account group of type Exclude Scheme keeps accounts out
Applicable Transaction TypeWhen set, the document's transaction type must equal it
Val CountCap on how many distinct documents per customer the scheme may apply to, counted live from the ledger; empty or zero means unlimited
Ignore BudgetSkips every budget gate for this scheme
Round Off TypeFloor or Ceil applied to computed scheme values such as derived free-item quantities
Is Claimable, Claimable Percentage, Claim Generation FrequencyThe hook that lets scheme payouts be generated as trade claims

The status stepper is maintained by editing Status; the seeded Submit for Approval button is a plain save with no workflow behind it, so a scheme goes live when someone with rights sets Status to Approved (or when your organization's own approval process does).

Slabs

Approved scheme record with the Scheme Slab tab open showing one slab row with Reward Applicability = Any One With Highest Value and Definition Filter Criteria = All Conditions Are Met
The Scheme Slab tab lists the scheme's tiers. Each slab decides how its conditions combine (Definition Filter Criteria) and which of its benefits are granted (Reward Applicability); open a slab to see the conditions and benefits themselves.UI captured
  1. 1

    Scheme Slab tab: one row per tier of the offer.

  2. 2

    Slab Name is generated; click it to open the slab with its Scheme Condition and Scheme Benefit lists.

  3. 3

    Reward Applicability: All Rewards, Any One With Lowest Value, Any One With Highest Value or Custom Logic.

  4. 4

    Definition Filter Criteria: All Conditions Are Met, Any Condition Is Met, Always (No Criteria) or Custom Logic Is Met.

  5. 5

    New adds another slab; slabs are evaluated in sequence order.

The Scheme Slab tab lists the tiers — "10–49 units" and "50+ units" are two slabs of the same scheme. Each slab carries a Sequence Number, a Definition Filter Criteria (how its conditions combine: All Conditions Are Met, Any Condition Is Met, Always (No Criteria) or Custom Logic Is Met with an expression such as {1} AND ({2} OR {3}) over condition ordinals) and a Reward Applicability (which qualifying benefits are granted: All Rewards, Any One With Lowest Value, Any One With Highest Value or Custom Logic over benefit ordinals). Slabs are evaluated in absolute-sequence then sequence order. Use Lower Ratio for Rewards makes a multi-condition slab use the lowest qualification count across its conditions instead of the highest.

A Scheme Slab record opened from its scheme, showing the slab header (Definition Filter Criteria = All Conditions Are Met) and its Related tab with one Scheme Condition (Condition Type Value, Condition Value 100,000) and one Scheme Benefit (Reward Type Line Level Discount Amount)
Inside a slab: the condition says what the order must reach (document Value of 100,000) and the benefit says what the customer gets (a line-level discount amount). This is the pair the engine tests and applies.UI captured

Open a slab to see its Scheme Condition and Scheme Benefit lists. The Related tab of the scheme itself hosts the same slabs as expandable cards plus an Add Scheme Slab builder that creates slab, condition and benefit rows directly; the seeded Create Scheme Slab, Create Scheme Condition and Create Scheme Benefit buttons have no server handler and do nothing beyond saving.

Conditions

A condition is a type, an operator and a threshold:

Condition typeMeasures
Quantity / Value / Value With TaxThe whole document
Item Quantity / Item Value / Item Value With TaxThe item in Item (optionally one SKU or lot type)
Item Group Quantity / Value / Value With TaxItems belonging to Item Group
Unique Item CountDistinct items on the document

Operators are Equal, Does Not Equal, Greater Than, Greater Than Or Equal, Less Than and Less Than Or Equal; quantity types read Condition Quantity, value types read Condition Value. For the two Greater Than operators the engine also derives a qualification count — the whole number of times the threshold was reached — which drives repeatable rewards. Exclude Item Group carves items out of the measure, Exclude Account Group carves customers out, and Use In Ratio Calculation marks the condition whose target-to-achievement ratio feeds ratio-based repeats. Per Period schemes measure the same types over the accumulated period totals.

Benefits

Reward typeGives
Line Level Discount Percentage / Line Level Discount AmountA discount on the qualifying lines
Discounted Item / Discounted Item GroupFree or discounted units of Discounted Item (or picked from Discounted Item Group), Discounted Item Quantity per qualification
Reward PointsLoyalty points stamped on the document lines and mirrored into the ledger

Free-item benefits either discount matching existing lines or insert new lines flagged as scheme-generated. Repeat Reward grants the benefit once per qualification count; Repeat Rewards In Ratio scales it by the achievement ratio instead and takes precedence. Exclude Qualifying Items forces the reward onto lines other than the ones that qualified, Discounted Item Ranking picks candidate lines High To Low or Low To High by value, Exclude Discounted Item Group keeps a group of items from ever being the rewarded line, Limit Expiry Days is copied onto the rewarded lines as a validity horizon, and Recommendation Text is the marketing copy shown with recommendations.

Budgets and periods

The Scheme Budget tab holds Scheme Account Budget rows in currency. A row with neither partner account nor partner account group is the scheme-wide budget; a row with one of them caps spend for that partner or group. Their displayed Utilized Amount and Budget Available are refreshed from the ledger for reading only; enforcement sums live ledger consumption. A platform validation ("Scheme Budget Exceeded!") blocks a save that would take available budget negative unless the scheme ignores budget. The Period tab lists the Scheme Period rows generated for Per Period schemes (Date From, Date To, Status); a per-document scheme has none.

The Recommendations tab of the scheme layout shows fixed illustrative cards that are not driven by the open scheme. Do not read them as qualification evidence; run Get Scheme Recommendations on the order or invoice instead, which computes the live gap from the document's own lines.

Working with schemes on an order

  • Saving the order (inserting, changing or deleting a line) runs every Auto Apply scheme: qualifying discounts land on the lines and free-item benefits add scheme-generated lines, refreshed or removed as the order changes. Skip Scheme on the order suppresses evaluation.
  • Get Qualified Scheme Slabs lists the slabs the document currently qualifies for; Get Qualified Benefits lists the benefits available for a set of item groups.
  • Apply Scheme commits a chosen slab (and, for slabs with alternative benefits, the chosen benefit or custom-logic group). Apply On Selection schemes only ever apply this way.
  • Get Scheme Recommendations returns, per item or for the whole document, the schemes in reach with how much more is needed — e.g. "5 more value required!" — so a rep can nudge the basket to the next slab.
  • Reset Scheme removes applied schemes from the document: scheme discounts are cleared, scheme-generated lines deleted and the document's ledger rows removed, which releases its budget consumption.

The same actions exist on invoices and on the purchase and service documents covered by the scheme types.

The ledger and budget enforcement

Every applied benefit is a Scheme Ledger row — one per document line — mirrored from the line state on every save (rows for lines that no longer carry a scheme are deleted). The ledger is the source of record: Val Count limits, scheme-wide and partner budgets and the denormalized utilisation displays are all computed from it. Its Net Scheme Discount is the normalized currency value of the benefit (the discount amount, or line amount times discount percent), and Claimed marks rows a claim has already consumed.

Budget gating works like this:

  • A positive legacy header Scheme Budget counts as a scheme-wide cap; the engine compares against the greater of the stored utilised amount and the live ledger sum, so a stale figure cannot wrongly admit a scheme.
  • On a sale order a currency benefit can apply even when no budget rows exist; any configured applicable cap still has to have room.
  • On a sale invoice, unless Ignore Budget is on, the scheme must have both a scheme-wide budget row and an applicable partner or partner-group row. A missing tier suppresses the scheme on the invoice and removes a copied order discount rather than letting it pass unbudgeted.
  • Reward Points do not consume a currency budget. Carts evaluate schemes without writing consumption; committed documents write ledger rows.

Common questions

Why didn't a scheme apply to my order?

Work down this list: Status must be Approved and the document date inside Val From / Val To; the Scheme Type must cover this document (a Per Sale Invoice scheme never fires on an order); an Apply On Selection scheme must be applied by hand; the slab's conditions must actually be met — Get Qualified Scheme Slabs shows what qualifies and Get Scheme Recommendations how far away you are; the account must not sit in an excluded account group, the partner and branch must match, and any Applicable Transaction Type must equal the document's; Val Count must not be exhausted for this customer; and every applicable budget must have headroom. For an invoice, also confirm both budget tiers exist unless Ignore Budget is on. The troubleshooting page has the same list with fixes.

What happens when a scheme's budget runs out?

The engine skips a pending currency benefit when an applicable live budget lacks headroom. Existing benefits on other documents are not clawed back. Resetting the scheme on a document removes that document's effects and ledger consumption. Distinguish exhaustion from incomplete invoice configuration: a missing scheme-wide or partner tier suppresses an invoice scheme even though no displayed budget appears exhausted.

Can a user choose which benefit to take?

Yes, when applying manually: Apply Scheme accepts the chosen slab and, for slabs whose Reward Applicability offers alternatives, the chosen benefit or benefit group. Auto-applied schemes follow the slab's configured applicability instead.

Does resetting a scheme remove the free items?

Yes. Scheme-generated lines are created by the engine and marked as such; Reset Scheme deletes them and clears the scheme discounts from the remaining lines. Their budget consumption is released at the same time.