Feature Request: Updates To Promotion Engine — Stacking, Exclusions, and Priorities #3894
Replies: 4 comments
-
There is. You can add your custom promotion conditions. With that you can basically handle every possible combination. The idea of adding execution priority is actually a good idea and could find its way into the core. |
Beta Was this translation helpful? Give feedback.
-
If you asked GPT how vendure compared with other open source solutions community edition will reply with missing promotion capability with basic use cases .. i believe enhancing promotion system with catalog promotions feature will give more to vendure in the market. |
Beta Was this translation helpful? Give feedback.
-
|
@mezzat11 well, this always depends on the audience you're catering your product too. We want to keep the core as lean as possible and add further functionality as standalone plugins. We might be adding some of this basic promotions in a dedicated plugin, but not in the core. |
Beta Was this translation helpful? Give feedback.
-
|
@dlhck ⸻
Catalog-level discounts (i.e., sale prices visible before checkout) are considered a fundamental part of modern commerce. This isn’t “advanced marketing” — it’s basic customer expectation and platform parity. Why it matters: Proposed middle ground: ⸻
Without stacking rules, multiple cart promotions can apply together unintentionally, resulting in: Why core support matters: ⸻
These features are expected even in MVP setups, and their absence: Vendure’s architecture is excellent — this is just about providing core scaffolding that plugins can build on cleanly. |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
Problem:
Vendure’s current promotion engine applies all matching cart promotions without fine control. There is no native support for setting promotion priority, exclusions, or stacking rules, which are critical for managing real-world marketing logic.
Why It Matters:
In standard eCommerce setups, promotions often conflict or must be stacked in a specific order (e.g., "Black Friday 30% off, cannot be combined with coupon").
Without rule exclusions or priority levels, promotions can apply unexpectedly, creating customer confusion or lost revenue.
Platforms like Magento and Sylius have extensive rule engines to prioritize, exclude, or control stacking behavior.
Examples from Other Platforms:
Magento: Has rule priorities, exclusive checkboxes, and stackable configuration.
Sylius: Promotion rules and actions can be composed, and developers can prevent overlap programmatically.
Shopify Plus: Promotion stack rules are managed via Functions/Scripts.
Suggested Implementation in Vendure:
Extend the Promotion entity with:
priority: number – determines application order
exclusive: boolean – if true, blocks other promotions from applying
excludes: Promotion[] – optional relation to define exclusion relationships
Update the promotion engine to:
Sort promotions by priority before evaluation
Skip conflicting promotions based on exclusive and excludes logic
GraphQL API:
Expose applied promotions and any conflicts for transparency
Admin UI:
Add fields for priority, exclusive, and excludes during promotion setup
Beta Was this translation helpful? Give feedback.
All reactions