Order Amount
API reference for creating and managing Order Amount promotions in Omnium OMS.
Order Amount API Reference
Table of Contents
- Overview
- Promotion Type
- API Endpoints
- Data Models
- Creating Promotions
- Examples
- New Features
- Best Practices
Overview
Order Amount promotions provide flat discounts on the order total, which can be set up based on the total order value and/or the total quantity of items in the cart. This promotion type is ideal for encouraging customers to increase their cart size to reach a threshold.
Supported Discount Types
- Percentage-based discount (e.g., 10% off)
- Fixed amount discounts (e.g., $10 off)
- Multi-currency support
- Minimum order amount condition
- Minimum total quantity condition
- AND/OR condition operator for combining conditions
Common Use Cases
- "Get $10 off orders over $100"
- "10% off when you buy 5 or more items"
- "Use code BF2025 for 20% off your order"
- "$10 off when order is $100+ AND you have 3+ items"
- "10% off when order is $50+ OR you have 5+ items"
Promotion Type
Order Amount promotions use promotionType: 3 (OrderAmountPromotion).
How It Works
- The system evaluates the order total against configured amount conditions or coupon codes
- Optionally evaluates the total item quantity against minimum quantity
- Combines conditions using AND or OR operator
- If conditions are met, the configured discount is applied to the order total
Price Generation
Order Amount promotions do not generate product prices. The discount is applied as a flat discount that is subtracted from the order total.
API Endpoints
Base URL
Create Promotion
Request Body: OmniumPromotionRequest
Update Promotion (Patch)
Request Body: OmniumPromotionPatch
Get Promotion (by ID)
Search Promotions
Request Body: OmniumPromotionSearchRequest
Delete Promotion
Data Models
OmniumPromotionRequest
The main request model for creating an Order Amount promotion.
OmniumPromotionType (for OrderAmountPromotion)
The promotion data configuration for order amount promotions.
Properties
| Property | Type | Required | Description |
|---|---|---|---|
promotionType | int | Yes | Must be 3 for Order Amount promotions |
reward | object | Yes | The discount to apply when conditions are met |
amountCondition | array | No | Minimum order amounts per market/currency. Leave empty or null for no amount condition |
minQuantity | int | No | Minimum total quantity of items required. Leave null for no quantity condition |
conditionOperator | int | No | How to combine conditions: 0 = AND (default), 1 = OR |
Reward Object
promotionAmounts carries the reward value for both reward kinds, and usePercentage tells you how to read it.
| Property | Type | Required | Description |
|---|---|---|---|
usePercentage | bool | Yes | true for percentage discount, false for fixed amount |
promotionAmounts | array | Yes | Reward value per market. When usePercentage is true, amount is a percentage (0-100) and currency is ignored. When usePercentage is false, amount is a fixed amount in currency |
percentage | decimal | No | Not used by Order Amount promotions. Set the percentage in promotionAmounts[].amount instead |
An Order Amount promotion with usePercentage: true gives no discount unless promotionAmounts contains an entry whose marketId matches the order's market. The percentage property is not read for this promotion type.
Matching of promotionAmounts entries differs between the two modes:
usePercentage | Entry is matched on |
|---|---|
true | marketId only |
false | marketId and currency |
Because currency is ignored in percentage mode, an entry can keep a currency value from an earlier fixed-amount setup. A reward that reads { "amount": 20, "currency": "NOK" } together with usePercentage: true is a 20 percent discount, not 20 NOK.
Amount Condition Object
| Property | Type | Required | Description |
|---|---|---|---|
amount | decimal | Yes | Minimum order amount required |
currency | string | Yes | Currency code (e.g., "USD", "EUR") |
marketId | string | Yes | Market identifier |
Condition Operator Enum
| Value | Name | Description |
|---|---|---|
0 | And | Both amount AND quantity conditions must be met |
1 | Or | At least one condition (amount OR quantity) must be met |
Creating Promotions
Basic Order Amount Promotion (Coupon code only)
Scenario: "Get $10 off orders when using a cupon code"
Basic Order Amount Promotion (Amount Only)
Scenario: "Get $10 off orders over $100"
Percentage Discount on Order Amount
Scenario: "Get 15% off orders over $75"
Quantity-Based Promotion
Scenario: "Get 10% off when you buy 5 or more items"
Note: Leave amountCondition empty or null when using only quantity conditions.
Combined Conditions with AND
Scenario: "$20 off when order is $150+ AND you have 3+ items"
Note: conditionOperator: 0 means BOTH conditions must be met.
Combined Conditions with OR
Scenario: "10% off when order is $100+ OR you have 5+ items"
Note: conditionOperator: 1 means AT LEAST ONE condition must be met.
Examples
Example 1: Multi-Currency Amount Condition
Scenario: "$10 off in US, €8 off in Europe"
Example 2: Coupon Code Required
Scenario: "Use code SAVE15 for 15% off orders over $50"
Example 3: Free Shipping Equivalent
Scenario: "Free shipping (equivalent to $5.99 off) on orders over $35"
Note: For actual free shipping, use a Shipping Promotion instead.
Example 4: VIP Customer Exclusive
Scenario: "VIP Members: 20% off orders over $100"
Example 5: Progressive Discount Tiers
Scenario: Create multiple promotions for tiered discounts based on order amount
Promotion 1: "15% off orders over $200"
Promotion 2: "10% off orders over $100"
Note: The higher priority (lower number) promotion will be evaluated first.
Example 6: Bulk Purchase with AND Condition
Scenario: "$25 off when you spend $200+ AND buy 10+ items"
Example 7: Flexible Discount with OR Condition
Scenario: "10% off - either spend $75 or buy 6 items"
New Features
Minimum Quantity Condition
Version: 2.0 (2025)
Order Amount promotions now support a minimum total quantity condition. This allows you to create promotions based on the number of items in the cart, regardless of the order total.
Key Features:
- Set a minimum total quantity of items required
- Works independently or in combination with amount conditions
- Counted across all items in the cart
Use Cases:
- "Buy 5 or more items, get 10% off"
- "Add 3 items to cart for $5 off"
- "Purchase 10+ items for free shipping"
Example:
Condition Operator (AND/OR Logic)
Version: 2.0 (2025)
When both amount and quantity conditions are set, you can now control how they are evaluated using the conditionOperator property.
Operators:
| Value | Operator | Behavior | Example |
|---|---|---|---|
0 | AND | Both conditions must be met | Order $100+ AND 3+ items |
1 | OR | At least one condition must be met | Order $100+ OR 5+ items |
Default Behavior:
- If not specified, defaults to
0(AND) - Only applies when BOTH
amountConditionandminQuantityare set - Ignored when only one condition type is configured
Use Cases:
AND Operator (0):
- "Spend $150 AND buy 5 items for free shipping"
- "$20 off when you spend $100 AND have 3+ items"
- Encourages both high spend AND high quantity
OR Operator (1):
- "10% off when you spend $50 OR buy 5 items"
- "Free shipping on $75+ orders OR 6+ items"
- Gives customers flexibility in how they qualify
Example:
Backward Compatibility
All existing Order Amount promotions continue to work without modification:
- Promotions without
minQuantitybehave as before (amount-only) conditionOperatordefaults to0(AND) if not specified- No breaking changes to existing API contracts
Best Practices
1. Choose the Right Condition Type
Amount-only conditions:
- Best for high-value cart encouragement
- Works well for average order value (AOV) optimization
- Example: "$10 off orders over $100"
Quantity-only conditions:
- Best for inventory clearance
- Encourages customers to add more items
- Example: "10% off when you buy 5+ items"
Combined conditions (AND):
- Best for premium promotions
- Ensures both high value AND high quantity
- Example: "$25 off when order is $200+ AND 10+ items"
Combined conditions (OR):
- Best for flexible promotions
- Gives customers multiple paths to discount
- Example: "10% off $75+ OR 6+ items"
2. Set Appropriate Thresholds
- Research your average order value (AOV)
- Set thresholds slightly above AOV to encourage upselling
- Use round numbers ($50, $100, $200)
- For quantity, consider typical purchase patterns
3. Multi-Currency Consistency
Always provide amount conditions for all active markets:
4. Reward Alignment
Match reward amounts to business goals:
- Percentage discounts: Better for variable cart values
- Fixed amounts: Better for predictable margins
5. Priority Management
- High-value promotions (e.g., VIP offers): Priority 0-5
- Standard promotions: Priority 10-20
- Fallback promotions: Priority 50+
6. Testing Combined Conditions
When using minQuantity with amountCondition:
- Test with AND operator to ensure both conditions work
- Test with OR operator to verify either condition triggers
- Test edge cases (exactly at threshold)
- Verify behavior in multi-currency scenarios
7. Communication Clarity
When using combined conditions with OR:
- Clearly communicate both paths to customers
- Use description: "Spend $75 OR buy 6 items to save!"
- Update UI/email templates to show both options
8. Combination Rules
Set appropriate combination settings:
- Exclusive promotions:
canBeCombinedWithOtherPromotions = false - Stackable promotions:
canBeCombinedWithOtherPromotions = true
9. Date Management
- Always set
activeToto prevent indefinite running - For seasonal promotions, set precise start/end times
- Consider timezone implications for global markets
10. Monitoring and Optimization
- Track conversion rates at different thresholds
- Monitor average order values before/after promotion
- Adjust thresholds based on performance data
- A/B test different threshold amounts
Troubleshooting
Promotion Not Applying
Check:
- Is the promotion within its
activeFromandactiveTodates? - Does the order total meet the
amountCondition? - If
minQuantityis set, does the cart have enough items? - If both conditions are set, verify
conditionOperator:0(AND): Both must be met1(OR): At least one must be met
- Does the cart's market match the promotion's
markets? - If using a coupon code, has it been applied?
- For customer group restrictions, does the customer belong to the group?
Discount Amount Incorrect
Check:
- For fixed amount discounts, verify
promotionAmountsincludes the correct currency - For percentage discounts, verify
usePercentage = trueandpercentageis set correctly - Verify the promotion priority isn't causing a different promotion to apply
- Check if other promotions with
alwaysApply = trueare interfering
Combined Conditions Not Working as Expected
Check:
- Verify both
amountConditionandminQuantityare set - Check
conditionOperatorvalue:0requires BOTH conditions1requires AT LEAST ONE condition
- Test each condition independently:
- Set
minQuantity = nulland test amount only - Set
amountCondition = []and test quantity only
- Set
- Verify quantity calculation includes all items in cart
Multi-Currency Issues
Check:
- Ensure
amountConditionincludes entry for the order's currency - Verify
marketIdmatches the order's market - Check that reward
promotionAmountsalso includes the currency
API Response Models
Success Response (Create)
Note: Order Amount promotions don't generate product prices, so "prices updated" will always be 0.
Error Response
Additional Resources
- Promotion Types Overview: See main Promotions documentation
- Model Validation: All
MaxLengthattributes indicate array size limits - Date Formats: Use ISO 8601 format (e.g.,
2025-01-01T00:00:00Z) - Multi-Buy Promotions: See MultiBuy API Reference
- Shipping Promotions: See Shipping Promotions documentation
Support
For questions or issues:
- Check this documentation
- Review the troubleshooting section
- Examine API error messages for validation details
- Contact your Omnium support team
Document Version: 2.0 Last Updated: 2025 API Version: Compatible with Omnium OMS .NET 9.0+ New in Version 2.0:
- Minimum quantity condition support
- AND/OR condition operator
- Enhanced condition evaluation logic