SteelCode
steelcode.dev
Product Expiration Date

Product setup and discounts

Set a product expiry date and define the discount rules that apply as expiry approaches.

Product setup and discounts

Each product is configured independently. Open Catalogues → Products, open the product, select Expiration date, and save through Shopware's global Save button.

Configure a product for the first time

  1. Set Date of expiration. Until this date is set, the product has no discount rules and is not processed.
  2. Enable Active. This is the master switch for the product's expiration handling.
  3. Enable Preview on storefront if customers should see the expiration card or compact indicators.
  4. Enable Automatic deactivation if Shopware should set the product to inactive when the date is reached.
  5. Enable Notify via email if the configured internal recipients should receive expiry reminders for this product.
  6. Optionally add product-specific discount rules.
  7. Save the product.

Setting a date alone is not enough. The plugin processes a product only when Active is enabled.

What each switch does

SettingEffect
ActiveEnables expiration processing, discounts, and storefront data for this product.
Preview on storefrontAllows the product detail card and, when globally enabled, listing/cart/checkout indicators.
Automatic deactivationDeactivates an active product once its expiration date is reached.
Notify via emailAllows this product to use the global internal email-notification configuration.

Automatic deactivation is independent of the email switch. A product can be deactivated even when no email notifications are configured.

Product-specific discount rules

Discount rules appear after an expiration date is selected. Use Add discount rule, choose a standard period, enter the percentage, and use the action menu to delete a row you no longer need.

Product rules have priority over global fallback rules. If at least one product rule is active, only product rules are considered. If there are no active product rules, the plugin uses the global rules from plugin configuration.

The closest eligible rule applies. For example, with rules of 10% within one month, 20% within 14 days, and 30% within 7 days, a product with five days remaining receives 30%.

The price is never reduced before the selected rule period begins. Once the expiration date has passed, no expiration discount is applied. On the expiration date itself, automatic deactivation determines whether the product remains available after the daily processing run.

Variants and inherited product data

The plugin supports product variants. When a child variant has no own expiration record, the parent product's expiration data can be used for its storefront and cart calculation. Configure a separate record on a variant when it needs a different date or discount strategy.

After changing an expiration date

Changing the date recalculates the applicable discount and starts a new notification cycle for that product. Clear the Shopware cache after larger manual changes if a storefront page still shows an older price or indicator.

Product listing administration

The product overview has an optional Expiration date column, available from the normal column chooser. It uses the same relative date display as the Created at and Updated at columns.

The standard product-list filter panel also includes Expiration period. Its options are non-overlapping ranges, so a product belongs to one range only: within 7 days, 8–14 days, 15–21 days, 22 days–1 month, then consecutive month and year ranges.