Latest posts Visit blog
In plain words: what is this page about?

Many shops have a special page with reduced goods for Black Week. This page is often kept up by hand. That takes time and leads to mistakes. Shopware can fill the page by itself. You set up a rule for it. The rule checks a keyword, the stock and the price. If an item fits, it shows up on the page. If it sells out, it drops off again. We explain how it works and what to watch out for.

Maintaining a Black Week promotion category by hand means assigning items one by one, removing sold-out items again and dismantling everything after the promotion – in exactly the days when many orders come in anyway. Shopware takes this work off your hands with dynamic product groups. A product group is a rule made of conditions, and the category shows every item that meets the rule. The Shopware documentation explicitly uses a “promotional items” tag as an example and names dynamic filling as useful for sales categories (Shopware documentation). This guide shows how to build a Black Week category with three conditions – tag, stock and list price –, which pitfalls come with variants, cache and indexing, and what a schedule up to November 27, 2026 looks like. If you would rather hand over the setup, our Shopware agency takes care of it.

Why a manually maintained promotion category falls behind

For many shops, promotional business peaks during Black Week. In 2026, Black Friday falls on November 27 and Cyber Monday on November 30. The demand is there: in fall 2025, roughly one in two wanted to use the reduced prices around Black Friday and Cyber Week, 52% of the internet users aged 16 and over who were surveyed (Bitkom). Of these, 69% planned to look for deals exclusively online (Bitkom).

How a shop presents its products is not a side issue: 42% of respondents say that the usability of the shop and the presentation of products are very important when choosing an online shop (Bitkom). A category that shows sold-out items or misses reduced ones stands out accordingly during promotion week. With manual upkeep, the mistakes are usually the same:

  • Sold-out items stay visible and lead to a product page where nothing can be bought anymore.
  • Items whose promotional price has already been reset remain in the sale category.
  • Restocked or late-reduced items are missing because nobody assigned them.
  • Variants appear twice or are missing, depending on who made the assignment.
  • After the promotion, the category stays online with outdated assignments.

A dynamic product group reverses the process. Instead of placing items in the category, you describe which items belong there. Whether an item appears is decided by its data: the tag, the stock, the price. When the data changes, the category changes with it, without anyone touching the assignment.

What dynamic product groups do in Shopware

You will find the feature in the Administration under Dynamic product groups (Shopware documentation). The documentation describes it as follows:

Dynamic product groups are groups of products that are formed by dynamic rules and can be played at different locations in your shop.

Shopware documentation: Dynamic product groups

Dynamic product groups are part of the Shopware 6 core. The source code of the module is in Shopware’s public repository under the MIT license (Shopware source code), so the feature is also available in the Community Edition. No extension is needed for the setup in this guide. In its section on assigning product groups, the documentation names three places of use (Shopware documentation):

Categories

The category shows the content of the product group. According to the documentation, filling it dynamically is useful for sales or manufacturer-specific categories, for instance (Shopware documentation).

Product slider in Shopping Experiences

The product slider element from the Commerce block category can be filled with a product group, for instance for a promotion strip on the homepage (Shopware documentation).

Product comparison

In the sales channel for product comparisons, dynamic product groups fill the feed with content (Shopware documentation), for instance for price comparison portals.

For a promotion, this is the real advantage: a single rule determines what appears in the category, in the slider on the homepage and in the feed. Change the rule, and all three places change at once.

Conditions, operators and preview

In the Conditions area, you select a property and a condition that must be met for each line. You link further lines either as an AND link or as an OR link, and sub-conditions let you nest rules (Shopware documentation). The Preview button shows all products that would belong to the group with the currently selected conditions (Shopware documentation). It is the key check before a rule ends up in a visible category.

Which operators are available depends on the property. For properties with one or more selectable values, such as categories, manufacturers or tags, the documentation lists six operators: Is equal to, Is not equal to, Is equal to any of, Is not equal to any of, Is equal to all of and Is not equal to all of (Shopware documentation). For numeric fields such as stock or price, the Administration offers comparisons such as Is greater than and Is less than (Shopware source code).

The conditions of a product group are based on Rule Builder rules (Shopware documentation). If you have already created pricing rules there, you know the logic; our article on pricing rules and promotions in the Rule Builder gives an overview. Three conditions linked with AND are enough for the promotion category:

ConditionProperty in the AdministrationOperatorValueEffect
SelectionTagsIs equal toPromo itemonly items that purchasing or marketing has flagged for the promotion
AvailabilityStockIs greater than0sold-out items drop out
Price reductionPercentage ratio price/list priceIs greater than0only items whose price is below the list price
Build the rule step by step

Add the conditions one at a time and open the preview after each one. This shows you which condition removes how many items, and you find data errors such as missing tags or forgotten list prices before the category goes live.

Condition 1: the promo item tag

Tags are keywords you store on the product; according to the documentation, they can be used within rules, among other things (Shopware documentation). The documentation shows exactly this case as an example: a product group includes all products that carry the promotional items tag and are also clearance sale items (Shopware documentation).

The tag is the editorial decision. It defines which items are intended for the promotion; the rule then checks stock and price by itself. To make sure the tag is set reliably, a short agreement in advance pays off:

  • One tag per promotion or a permanent tag: A neutral tag such as “Promo item” can be reused every year, a dated one such as “Black Week 2026” makes it traceable later which items took part.
  • One place sets the tag: Purchasing, marketing or the ERP system, but not all three, so that no tags with different spellings appear.
  • The route into the shop is clear: By hand on the product for a few items, through the connection to the ERP or PIM system for large ranges.
  • The end date is fixed: If you decide in advance when the tag will be removed, the category does not live on after the promotion.

If the tag comes from the ERP system, it belongs in the integration and not in manual upkeep in the shop. Our overview of integrations describes how we connect ERP, PIM and shop.

Condition 2: only items in stock

For stock, the product group offers the properties Stock and Available stock (Shopware source code). According to the product documentation, the available stock reflects the current stock, so both values match; before Shopware 6.6.0.0, a different stock management applied (Shopware documentation). The condition Stock is greater than 0 removes sold-out items from the category. The documentation shows the same condition with a different threshold: there, all products with a stock greater than 20 belong to the group (Shopware documentation). A higher value makes sense if remaining stock should not be promoted prominently.

Clearance sale is a different matter. According to the documentation, an item marked as clearance sale cannot be sold beyond the available stock (Shopware documentation). In the product list settings, there is also an option to hide clearance items in the storefront as soon as stock reaches 0 (Shopware documentation). This option applies to the whole shop and only to clearance items; the condition in the product group applies only to the promotion category, but also to items without clearance sale.

For items with variants, the option Keep matching variants grouped determines the display: if it is enabled, matching variants stay grouped under a shared main product, otherwise they appear individually (Shopware documentation). If only some sizes of fashion or shoes are reduced, it is worth looking at both settings in the preview.

Stock is more than a display question

A category that hides sold-out items prevents an item that can no longer be delivered from being promoted prominently. It does not replace adequate stock. The German Unfair Competition Act lists bait offers without a notice about inadequate stock quantities among the commercial practices that are not permitted toward consumers; if stock lasts less than two days, the trader has to prove that it is adequate (UWG, Annex No. 5). If in doubt, clarify with your legal advisor which quantities and notices are adequate for your promotion.

Condition 3: price below the list price

Whether an item is actually reduced can also be checked as a condition. Besides the price, the product group offers the property Percentage ratio price/list price for this purpose (Shopware source code). Shopware calculates the value when the price is saved: 100 minus the price divided by the list price times 100, rounded to two decimal places (Shopware source code). An item for 80 with a list price of 100 thus gets the value 20, an item without a list price gets none.

The condition Percentage ratio price/list price is greater than 0 therefore includes every item whose price is below the stored list price. If you only want to show clearly reduced items, set a higher threshold. When you create the condition, the Administration enters 100 as the default value (Shopware source code). This value has to be changed actively, otherwise the category usually stays empty.

For a list price to appear in the storefront, it must be higher than the product price according to the documentation (Shopware documentation). Besides the selling price and the list price, the prices of a product can also hold the lowest price of the last 30 days (Shopware documentation). This is not a formality: anyone obliged to state a total price must give consumers the lowest total price of the last 30 days before the reduction whenever they announce a price reduction for goods; paragraph 4 sets out exceptions (Section 11 PAngV). Our article on strikethrough prices and discount advertising under the PAngV explains what counts as the reference price and what compliant strikethrough prices look like. How the Shopware discount display now calculates with the lowest price before the sale and what this means after Black Week is covered in the article on discounts after Black Week.

Alternative: fixed price limits

Instead of the reduction, a condition can also check the price itself. The documentation shows a product group with all products that cost more than 100 euros; the value refers to the currency with the factor 1 (Shopware documentation). This is handy for a subpage such as “Gifts under …”. A price limit does not tell you whether an item is reduced, though.

Creating and connecting the Black Week category

Once the product group is saved and checked in the preview, the category follows. The order in the Administration:

  1. Create the product group: name, optionally a description of its purpose, then the three conditions.
  2. Open the preview and compare the list of matches with your promotion plan.
  3. Create the category. A newly created category is inactive at first and does not appear in the frontend (Shopware documentation) – exactly right for the preparation.
  4. In the Products tab, select Dynamic product group as the type and assign the product group (Shopware documentation).
  5. In the Layout tab, assign a layout from the Shopping Experiences, for instance with a header area for the promotion period.
  6. Set the sorting and maintain title, description and SEO URL in the SEO tab.
  7. At the start of the promotion, activate the category and add it to the navigation.

One pitfall concerns existing categories: if you have already assigned items to a category manually and later switch its type to Dynamic product group, these items are no longer displayed in that category; they remain visible in the categories above (Shopware documentation). If you convert an old sale category, save the list of manually assigned items beforehand and transfer it as a tag.

The category can be prepared with the Hide in navigation option (Shopware documentation) and only appear in the menu at the start. The address matters more than the menu item: a promotion page that stays at the same URL every year collects links and visibility over the years. The XICTRAQ article on the Black Friday page with a permanent URL explains why this pays off; our article on SEO URL templates in Shopware shows how Shopware builds addresses from templates.

For the order of the items, the category can store its own sorting and set it as the default (Shopware documentation). You create the sorting options themselves in the product list settings; criteria include release date, stock and product name, among others (Shopware documentation). Sorting by stock in descending order moves well-stocked promotional items to the front.

One rule, several places to show it

The same product group can be used outside the category. In the Shopping Experiences, it fills the product slider element from the Commerce block category (Shopware documentation). A promotion strip on the homepage then shows the same items as the category, without a second round of upkeep. Our article on Shopping Experiences in Shopware describes how to build layouts for campaigns.

Beyond these three places, cross-selling sections can also be filled with product groups: according to the documentation, the setting for grouping matching variants affects categories, cross-selling sections and CMS product sliders (Shopware documentation). A promotion group as cross-selling on product pages leads visitors from one promotional item to others; the basics are in our article on cross-selling in the online shop.

For price comparison portals, the product group fills the feed of a product comparison (Shopware documentation). Google Shopping has its own rules for sale prices and promotion periods; what matters there during Black Week is covered in the article on sale prices in Merchant Center.

One source for category, slider and feed

When an item is tagged later, reduced or sells out, its membership in the product group changes – and with it every place that uses the group. Upkeep moves from the category to the product data, where it happens anyway.

Keeping it current: indexer, cache and message queue

For a category to react to data changes, Shopware has to know which products belong to which product group. The Product Stream Indexer builds this assignment: a background process that creates a mapping table of products to their product groups and uses it to find which category pages are affected by a product change (Shopware developer documentation).

With a large range or frequent changes, this indexer can become a bottleneck; from Shopware 6.6.10.0 onward, it can be disabled (Shopware developer documentation). This has a consequence that matters in promotion week in particular: when a product in the group changes, the category page is not updated until the HTTP cache expires (Shopware developer documentation). A sold-out item would remain in the category for that long. Check before the promotion whether the indexer is disabled in your shop, and decide deliberately.

Many background tasks, including parts of indexing, run through the message queue. Without running workers, changes then arrive late, in the shop as well as in the category. Our article on the Shopware message queue describes how workers should run in production. If stock levels and prices arrive from the ERP in large batches, indexing belongs in the queue; our ERP integration agency explains the process in its article on bulk import via the Sync API, including the note on the indexer for dynamic product groups. Before the promotion starts, this check is worthwhile:

  • The product group preview and the category in the storefront show the same items.
  • A test item is set to stock 0 and disappears from the category – measured, not assumed.
  • The message queue has been processed, and the workers run as a service.
  • Prices, list prices and the lowest price of the last 30 days are maintained for the promotional items.
  • The category has been opened once after activation and is thus warmed up in the cache.

Schedule up to Black Week 2026

In 2026, Black Friday is November 27 and Cyber Monday November 30. A schedule that has the promotion category ready in time:

PeriodTask
by November 13Define the promotion range, agree on a tag convention, set tags or transfer them from the ERP
by November 18Create the product group, check the preview, create the category as inactive, maintain layout and SEO URL
by November 24Test run: change stock, price and tag on test items, watch indexer, queue and cache
November 26, eveningPromotional prices active, activate the category, show the slider on the homepage
November 27 to 30Monitor the category and the queue, tag restocked items
from December 1Hide the category or switch it to the next promotion, remove tags, keep the address

During the promotion days, topics come up that do not concern the category but are decided on the same weekend. The article on the virtual waiting room for Black Friday shows how the shop handles peak loads. How to clear the order backlog afterward is covered in the article on bulk editing orders, and what helps with aborted payments in the article on failed payments.

Common mistakes with promotion categories

  • Default value not changed: The condition Percentage ratio price/list price starts at 100; with “Is greater than 100” the category stays empty.
  • Tag in two spellings: “Promo item” and “Promo-item” are two tags, and the rule finds only one.
  • Manual assignment overlooked: When the type is switched, manually assigned items disappear from the category.
  • Category active too early: An active category with finished promotional prices is visible before the start; prepare it as inactive instead.
  • Indexer disabled without anyone noticing: Sold-out items stay visible until the HTTP cache expires.
  • A new address every year: The category is deleted after the promotion and recreated under a new URL the following year; links collected so far are lost.
  • Extensions with write permissions: An app that changes tags or prices also changes the category. The article on Shopware apps and their permissions shows how to check permissions and webhooks.

How we support you with the promotion category

We set up product groups and promotion categories in existing Shopware shops, check the underlying data and test how indexer, cache and queue work together in a test environment. Where tags, stock levels and prices come from an ERP system, we build the transfer into the integration so that nobody has to maintain them by hand in the shop.

Rule and preview

Create conditions for tag, stock and reduction, compare the list of matches with your promotion plan.

Category and address

Prepare the category as inactive, define layout and sorting, choose an address that stays every year.

Data from the ERP system

Transfer tags, stock levels and list prices through the integration instead of maintaining them in the shop.

Operation during promotion week

Keep an eye on workers, cache and category, as part of our Shopware hosting or in your existing environment.

Contact us through our Shopware agency if you would like to have the promotion category set up before Black Week.

This is how your promotion range could look:

Sports and Outdoor Demo

Outdoor Equipment

This design example shows how a shop with seasonal categories and clear navigation can look. We design promotion pages so that range, price and availability are visible at a glance.
Promotion category Black Week Seasonal range Product slider
Discuss your project
Sources and studies

This article is based on the Shopware documentation (Dynamic product groups, Categories, Products, Product list), the Shopware developer documentation (Performance Tweaks, section on the Product Stream Indexer), Shopware’s public source code (condition service, filter component and text snippets of the product group module, price serialization), the Bitkom press release “Black Friday: Die Hälfte geht auf Schnäppchenjagd” of November 24, 2025, as well as Section 11 PAngV and the annex to the UWG. All information retrieved on October 29, 2026.

Yes. Dynamic product groups are part of the Shopware 6 core, whose source code is publicly available under the MIT license (Shopware source code). A promotion category with tag, stock and list price usually needs no extension.

That depends on how indexing, the message queue and the HTTP cache work together. If the Product Stream Indexer is disabled, the category page is only updated once the HTTP cache expires (Shopware developer documentation). Measure it with a test item before the promotion instead of relying on an assumption.

Yes. In the Shopping Experiences, the product slider element can be filled with a dynamic product group (Shopware documentation). The homepage and the category then show the same promotional items.

If you switch the type of a category to Dynamic product group, manually assigned items are no longer displayed there; they remain visible in parent categories (Shopware documentation). Save the list beforehand and transfer it as a tag.

Usually not. A promotion category with a constant address can be reused every year: you swap tag, layout and texts, and the URL stays. That way, links from the previous year are not lost.

The rule itself is usually created quickly. The effort typically lies in the data: consistent tags, maintained list prices and stock levels that come reliably from the ERP system. You can get an initial assessment for your shop through our contact page.