Skip to content

Promotions

What This Is

Promotions are the campaigns your team uses to apply discounts to orders, order items, or shipping. A promotion defines the high-level rules for when a discount is active, what it targets, and how it combines with other promotions.

When You Would Use It

Use Promotions when you need to:

  • create a seasonal or campaign discount
  • schedule a promotion for a date range
  • control whether a promotion applies to the order total, order items, or shipping
  • configure whether a promotion can combine with other promotions
  • attach codes, conditions, or per-product discount rules

Do not use the promotion record when you only need to change the price a shopper sees on a product. Product pricing is primarily driven by product offers.

Before You Start

Before you create or edit a promotion, make sure:

  • you can access Settings > Promotions
  • the promotions feature is enabled in your environment
  • you know the business target for the promotion:
    • order
    • order items
    • shipping
  • you know whether this campaign will need codes, conditions, or per-product benefits

How To Use It In The Admin

  1. Open Settings > Promotions.
  2. Create a new promotion.
  3. Start with the two required fields:
    • title
    • target
  4. Save the new promotion to open its detail page.
  5. In the promotion details, configure:
    • promotion type
    • value
    • active date range
    • shipping cutoff if needed
    • whether it can combine with other promotions
  6. If the promotion should be code-driven, add at least one promotion code.
  7. If the promotion should only apply in certain cases, add conditions.
  8. If the promotion type is per product, add the product-specific benefit rows you need.
  9. Activate the promotion when the setup is ready.

What It Changes In The Storefront

Promotions do not normally appear as a standalone storefront page.

They affect:

  • whether a promotion code can be applied in cart
  • which order items or shipping lines receive a discount
  • the discount lines and totals shoppers see during checkout

Common Tasks

Create a new promotion

Create it in Settings > Promotions, then finish the configuration on the promotion page.

Add a code

Use the Codes block on the promotion page.

Add eligibility rules

Use the Conditions block to define requirements and applies-to logic.

Add per-product discount rules

Use the Benefits block when the promotion type is per product.

Update promotions in bulk

Use the promotions Excel import/export workbook when you need to review or update many promotions.

Rules, Limits, And Things To Watch

  • A promotion is not the same thing as a code. The campaign can exist before the code exists.
  • Promotions only work if the target, timing, conditions, and codes all line up.
  • Per product promotions expose additional benefit configuration that other promotion types do not.
  • A promotion that has already been used cannot be safely deleted through the service layer.

Troubleshooting

The promotion exists, but shoppers cannot use it

Check whether it is active, within its date range, has valid codes, and passes its conditions.

I do not see the product-benefit section

That section only appears when the promotion type is per product.

The promotion code works for one order but not another

Check the promotion conditions, usage limits, combinability, and shipping cutoff rules.

For the full operator recovery checklist, see How to troubleshoot why a promotion is not applying.

Sources

  • packages/admin/routes/web.php
  • packages/admin/src/Livewire/Admin/Settings/Promotions/CreateDialog.php
  • packages/admin/src/Livewire/Admin/Settings/Promotion/BasicInformationBlock.php
  • packages/admin/src/Livewire/Admin/Settings/Promotion/Conditions/Block.php
  • packages/admin/src/Livewire/Admin/Settings/Promotion/Benefits/BenefitsBlock.php
  • packages/framework/src/Exports/Promotions/PromotionsExport.php
  • packages/framework/src/Imports/Promotions/PromotionsImport.php
  • packages/storefront/src/Livewire/Storefront/Cart/PromotionSection.php