A critical vulnerability was discovered in React Server Components (Next.js). Our systems remain protected but we advise to update packages to newest version. Learn More

Quan Mai
Feb 1, 2019
  6226
(3 votes)

New feature in Commerce 13: Exclude catalog items per promotion

In Commerce 10.1, we added a feature to allow you to exclude items from the promotion engine. Some items - such as gift cards - can be seen as "money" and should never be discounted, or used as a condition to calculate other discounts. That is a very nice feature, but our partners - as always, keep asking for more - for example, Joel from Avensia wrote this lengthy post to explain what they need https://world.episerver.com/forum/developer-forum/Episerver-Commerce/Thread-Container/2017/11/exclude-specific-catalog-entries-from-a-promotion/ and proposed a few solutions.

Basically, you might need to exclude certain catalog items from a specific promotion. A scenario I can think of, is that you want to have a 20% site-wide off, but a specific supplier said no (which is not uncommon for luxury brands). So you have to exclude items from that supplier.

That is solved in Commerce 13 with a new property in each and every builtin and custom promotion:

You can drag and drop catalogs, categories and entries to make them excluded by this specific promotion.

You can also set it using APIs by using new `ExcludedCatalogItems` property:

promotionData.ExcludedCatalogItems = new List<ContentReference>() { catalogLink, categoryLink, entryLink };

Note that the exclusion is always recursive. So if you add a category to ExcludedCatalogItems, all subcategories and their subcategories will be excluded.

Commerce 13 is on its way and can be released in a month or so (as always, don't take my words as promises)

Feb 01, 2019

Comments

Sebastian Enberget
Sebastian Enberget Feb 1, 2019 02:42 PM

Cool! And when will commerce 13 be out? :)

Feb 5, 2019 09:19 AM

@Sebbe: I expect it to be out in 1 month, but that is not fixed. 

Please login to comment.
Latest blogs
A day in the life of an Optimizely OMVP: Introducing Optimizely Style Manager

Managing display templates in Optimizely CMS (SaaS) has traditionally required working directly with the REST API or managing JSON configuration...

Graham Carr | Jan 13, 2026

Content modelling in Optimizely: Why your initial delivery decisions matter more than you think

The architectural shortcuts you take in sprint zero don't just create technical debt, they define whether your platform scales gracefully or crumbl...

Tom Robinson | Jan 12, 2026 |

A day in the life of an Optimizely OMVP: Introducing Query Library and Request Logs: Two Powerful New Features for OptiGraphExtensions v5

I am excited to announce two new features for OptiGraphExtensions v5 that give Optimizely CMS administrators greater visibility and control over...

Graham Carr | Jan 12, 2026

Indexing Geta Categories in Optimizely Graph

Different ways to fully use categories in headless architecture.

Damian Smutek | Jan 9, 2026 |

Building an custom Optimizely Opal tool with OCP SDK

Recently I have been working on some custom Opal tools and when looking on hosting options it was a no brainer to utilise Optimizely's OCP platform...

JSpencer | Jan 8, 2026

Event Mechanism on Contact Creation in Optimizely Commerce 14

In Optimizely Commerce 14, there is no traditional event or callback exposed for customer contact creation or updates. Instead, contact lifecycle...

Francisco Quintanilla | Jan 7, 2026 |