Rule types
Each business rule type has its own set of output fields. The conditions (IF side) use the same shared set of fields across all types. This page documents the available condition fields, the output schema per type and practical examples.
Condition fields
All rule types evaluate conditions against the order context. The following fields are available in the condition dropdown when building subrules.
Order fields
| Field | Type |
|---|---|
| Order subtotal | Number |
| Order action code (discount code) | String |
| Current date | Date |
| Postage shipping method | String |
| Postage carrier | String |
| Payment method | String |
Address fields
Available for both delivery and invoice addresses.
| Field | Type |
|---|---|
| Country | String |
| City | String |
| Region | String |
| Postal code | String |
User fields
| Field | Type |
|---|---|
| User type | String |
| First name | String |
| Last name | String |
| Birthday | Date |
| User attributes | Complex (nested) |
Company fields
| Field | Type |
|---|---|
| Company name | String |
| Company ID | String |
| Debtor ID | String |
| Created at | Date |
| Company attributes | Complex (nested) |
Order item fields (complex)
Order items are evaluated as a collection. You can count items matching certain criteria and compare that count against a threshold. The available sub-fields for filtering items are:
| Field | Type |
|---|---|
| Product SKU | String |
| Product manufacturer | String |
| Manufacturer code (OEM) | String |
| Supplier | String |
| Supplier code | String |
| Parent category ID | Number |
| Product ID | Number |
| Category path | Complex |
| Product name | Complex |
| Product attributes | Complex |
The aggregate fields available for output calculations are total quantity and total price.
Shipping costs
Controls how much the customer pays for shipping.
Typical hit policy: First (only one shipping cost applies)
Output fields
| Field | Description |
|---|---|
| Rule name | A localized label for the matched subrule |
| Action | SET_SHIPPING_COSTS |
| Price | The shipping cost value (in cents) |
Example: shipping costs by country and subtotal
Rule: "Shipping costs" (hit policy: first)
This rule calculates shipping based on delivery country and order subtotal. Because the hit policy is first, the engine stops at the first matching subrule. Subrule order matters.
| Subrule | Conditions | Shipping cost |
|---|---|---|
| Free shipping NL | Delivery country = "NL" AND subtotal ≥ €150 | €0.00 |
| Standard NL | Delivery country = "NL" | €6.95 |
| Belgium | Delivery country = "BE" | €9.95 |
| Germany | Delivery country = "DE" | €12.95 |
| Default (fallback) | Subtotal ≥ 0 | €19.95 |
Orders from the Netherlands above €150 get free shipping. Below that threshold, standard NL shipping applies. Belgium and Germany have flat rates. The fallback row uses a condition that is always true (subtotal ≥ 0), so any order not matching an earlier subrule gets the default international rate.
Carriers
Controls which carriers the customer can choose from during checkout.
Typical hit policy: All (multiple carriers can be selectable at the same time)
Output fields
| Field | Description |
|---|---|
| Rule name | A localized label for the matched subrule |
| Action | SET_CARRIER_TO_SELECTABLE |
| Carrier ID | The ID of the carrier to make available |
Example: carriers by country
Rule: "Available carriers" (hit policy: all)
Each subrule makes one carrier selectable. Using different conditions controls which carriers appear for different delivery destinations.
| Subrule | Conditions | Carrier |
|---|---|---|
| PostNL domestic | Delivery country = "NL" | PostNL |
| DHL domestic | Delivery country = "NL" | DHL |
| DHL Belgium | Delivery country = "BE" | DHL |
| DPD Belgium | Delivery country = "BE" | DPD |
| DHL international | Subtotal ≥ 0 | DHL |
Because the hit policy is all, every matching subrule contributes. A Dutch customer sees both PostNL and DHL. A Belgian customer sees DHL and DPD. All other countries only get DHL through the fallback row.
Payment methods
Controls which payment methods the customer can choose from during checkout.
Typical hit policy: All (multiple payment methods can be selectable at the same time)
Output fields
| Field | Description |
|---|---|
| Rule name | A localized label for the matched subrule |
| Action | SET_PAYMENT_METHOD_TO_SELECTABLE |
| Payment method ID | The ID of the payment method to make available |
Example: payment methods by user type
Rule: "Payment methods" (hit policy: all)
| Subrule | Conditions | Payment method |
|---|---|---|
| On account (B2B) | User type = "Contact" | On account |
| iDeal | Subtotal > 0 | iDeal |
| Visa | Subtotal ≥ 0 | Visa |
| Mastercard | Subtotal ≥ 0 | Mastercard |
| PayPal | Subtotal ≥ 0 | PayPal |
Because the hit policy is all, every matching subrule adds a payment method. "On account" is only available for company users. iDeal requires a subtotal above zero (it cannot process €0 payments). Visa, Mastercard and PayPal are available for all orders.
Incentives
Controls promotions such as bonus products, discount codes and order total discounts. Incentives have the richest output schema of all rule types.
Typical hit policy: First (one incentive per rule)
In cart, incentives are applied automatically. In tender (Sales Hub), incentives must be triggered explicitly by the sales rep.
Output fields
| Field | Description |
|---|---|
| Incentive name | A localized label for the matched subrule |
| Action | ADD_PRODUCT_TO_BONUS_ITEMS, GIVE_DISCOUNT_TO_ORDER_ITEM, GIVE_DISCOUNT_TO_ORDER_TOTAL, ADD_VALUEPOINTS_TO_ORDER, SET_SHIPPING_COSTS or SET_TRANSACTION_COSTS |
| Product ID | The product to add (for bonus item actions) |
| Quantity | How many to add |
| Price | Fixed price override (in cents) |
| Discount | Discount value |
| Discount type | FlatFee (flat amount) or Percentage |
| Value points | Value points to award |
| Repeat | Whether the action fires once per order or per qualifying item |
| Action code | The discount code that triggered the rule |
Example: bonus product on high-value orders
Rule: "Free branded merchandise" (hit policy: first)
This rule adds a bonus product to orders above a certain threshold using the order subtotal as a condition.
| Subrule | Conditions | Action |
|---|---|---|
| Premium gift | Subtotal ≥ €500 | Add bonus product, quantity 1, price €0, repeat off |
| Standard gift | Subtotal ≥ €100 | Add bonus product, quantity 1, price €0, repeat off |
Orders above €500 receive a premium gift. Orders between €100 and €500 receive a standard gift. Because the hit policy is first, only one bonus product is added. Subrule order matters here so that orders above €500 match the premium gift first.
Example: discount code
Rule: "Summer campaign 2026" (hit policy: first)
| Subrule | Conditions | Action |
|---|---|---|
| 10% summer discount | Order action code = "SUMMER10" | Give discount to order total, discount 10, type Percentage, repeat off |
When a customer enters the discount code "SUMMER10", a 10% discount is applied to the order total.
Transaction costs
Controls transaction fees based on the selected payment method or other conditions.
Typical hit policy: First
The output schema follows a similar pattern to shipping costs with a rule name, action and cost value.
See also
- Business rules overview for how rules apply at runtime
- Rule editor for building rules in the Backoffice