- Integrations
Promotion integration: calculating custom discounts
This guide explains how to use promotion integration with integration events to handle scenarios beyond the Rules Engine's capabilities.
Complex promotion scenarios
Rules Engine limitations
While the Rules Engine is powerful, some promotion scenarios require more complex calculations than expressions can handle.
Example scenario
Consider this promotion: "Buy 2 from Category A, Get 2 from Category B for 50% off" with these requirements:
-
Quantity scaling
- Discount increases with quantity
- Maintains promotion ratios
-
Split quantities
- Quantities divided across items
- Maintains category relationships
-
Price optimization
- Applies to least expensive items first
- Maximizes customer benefit
This scenario requires custom code implementation through promotion integration.

Implementation workflow
Process overview
- Create promotion with null
ValueExpression - OrderCloud calls middleware when promotion applies
- Middleware calculates discount values
- OrderCloud applies calculated discounts
Key features
- Maintains
EligibleExpressionevaluation - Supports auto-applied promotions
- Works alongside standard promotions
Best practices
- Use standard promotions when possible
- Reserve integration for complex scenarios
- Consider performance implications
Configuration properties
UseIntegration property
- Type: Boolean
- Default: false
- Purpose: Enables middleware integration
- Behavior: Triggers integration event calls
PromotionIntegration resource
Resource definition
json
Implementation notes
- One integration per marketplace
- Requires valid endpoint URL
- Includes security hash key
Integration payloads
Request payload
json
Payload components
- Environment: Identifies source (Production/Staging/Sandbox)
- Order: Complete order object
- LineItems: All order line items
- PromosApplied: Currently applied promotions
- PromosRequested: Promotions pending application
Response payload
json
Accepted promotion format
json
Rejected promotion format
json
API endpoints
Configuration management
GET v1/integrations/promotion: Retrieve settingsPUT v1/integrations/promotion: Replace configurationDELETE v1/integrations/promotion: Remove integrationPATCH v1/integrations/promotion: Update settings
Related reading
If you have suggestions for improving this article, let us know!