When you set up "20% off everything" in PrestaShop, the word everything does a lot of quiet damage. That cart rule will happily knock 20% off your gift cards, your loss-leader entry products, the limited edition you launched yesterday, and the one item your supplier contractually forbids you to discount. PrestaShop does exactly what you told it to — and "everything" was a mistake. The fix isn't to discount less; it's to decide, before the campaign goes live, which products are off-limits, and then build that boundary into the cart rule itself so a busy weekend never overrides it.

This post is about that boundary: which products should never go on sale, why, and exactly where in the PrestaShop back office you draw the line — using cart rule conditions, catalog price rules, and a tagging scheme that makes exclusions systematic instead of something you try to remember at 11pm before Black Friday. If you're still building the promotion side of this, start with running a sale in PrestaShop: cart rules, specific prices and discount strategies — this is the guardrail that sits on top of it.

The margin math that makes exclusions matter

A discount is a percentage off the price, but it comes straight out of the margin — and those are not the same number. Sell something for €100 at a 30% margin and you keep €30. Run a 20% store-wide sale and the price drops to €80, but your profit drops to €10. A 20% price cut just erased two-thirds of the margin on that line. On a product that was already thin by design, the same cut tips it negative: you are now paying customers to take stock off your shelves.

ProductPriceMargin %Profit beforeAfter 20% offProfit after
Healthy-margin item€10050%€50€80€30
Standard item€10030%€30€80€10
Loss-leader / entry item€10015%€15€80-€5

PrestaShop will not warn you about that last row. Cart rules and catalog price rules apply the percentage blindly; the platform has no concept of "this product can't afford it." That judgement is yours to make once, up front — and then to encode so it holds.

The damage isn't only arithmetic. Discount a premium product often enough and you teach customers its "real" price is the sale price. They stop buying at full price and start waiting for the next promotion — and you've manufactured your own slow season. That's the trap behind blanket discounting, and it's why flash sales done right stay tightly scoped: urgency on a few items, not a standing invitation to never pay full price.

Which products should never go on sale

New arrivals. A product you launched last week doesn't need help selling — the people buying it now are the ones happy to pay full price. Discount it immediately and you train your most eager customers to wait next time. Let new products earn their keep at full price first; if it's still on the shelf in three months, then it's a discount candidate.

Exclusive and limited-edition items. Scarcity is the whole value. A customer who paid full price for a limited edition and spots it 15% off a month later feels cheated — and won't buy your next drop at full price either. Exclusivity and "regularly on sale" cannot coexist.

Loss leaders and already-thin-margin lines. Some products exist to win the click or the first order, not to make money on their own. They're priced near the floor on purpose. Stacking a promotion on top turns a deliberate strategy into a straight loss. Know which products these are before you run anything store-wide.

Products under a minimum advertised price (MAP) agreement. Some suppliers contractually forbid advertising below a set price. A blanket cart rule that drops the displayed price under MAP can cost you the distribution relationship entirely. These exclusions aren't a preference — they're a contract, and they need to be enforced in code, not memory.

Gift cards, vouchers and services. Discounting a €50 gift card to €40 is a guaranteed €10 loss with no upside — you're selling money at a discount. The same goes for installation fees, extended warranties and other services. If you sell digital vouchers, treat them as a permanent exclusion from day one; see gift cards for PrestaShop for how those are set up and why they sit outside every promotion.

Excluding products from a cart rule (vouchers and promo codes)

This is the most common promotion type — a code or automatic discount applied in the cart. In the back office go to Catalog → Discounts (on PrestaShop 1.6 it's Price Rules → Cart Rules), open or create your rule, and look at the Conditions tab. The exclusion mechanism lives in two places there:

  • Product selection / restrictions. Under Conditions, the Product selection block is primarily an inclusion mechanism — it scopes which products in the cart make the rule eligible to trigger, rather than safely carving protected items out of an order-wide discount. Because of that, an order-level percentage paired with product restrictions won't reliably subtract excluded items from the discounted base. The dependable approach is to scope the campaign positively to the eligible products or categories.
  • The Actions tab. For a true exclusion, set the discount to apply only to a selected product/category (the eligible ones) rather than "Order (without shipping)" — that way the percentage only ever lands on lines you've chosen, and protected products are left untouched by construction.

Whichever route you take, test it with a mixed cart: add an eligible product and a protected one together and confirm the discount only reduces the eligible line. The reliable pattern is to define campaigns by what should be discounted rather than trying to exclude items from a blanket rule.

Excluding products from catalog price rules (automatic, shown on the product page)

Catalog price rules are the other half of PrestaShop discounting — automatic reductions that show as a struck-through price on the product page itself, with no code to enter. You'll find them under Catalog → Discounts → Catalog Price Rules (or Price Rules → Catalog Price Rules on 1.6). Their Conditions let you scope a rule to specific currencies, countries, groups, categories, attributes, features, manufacturers or suppliers.

The catch worth knowing: catalog price rules are inclusive by design — a condition narrows the rule to a match, it doesn't carve out an exception within a broad rule. So the practical approach is the inverse of "discount everything, exclude a few." Instead, define your sale by the categories or features that should be discounted (overstock, end-of-season, slow movers) and leave everything else untouched. Your protected products are excluded by simply never being included. That's also why a single "On sale" category or feature flag, maintained deliberately, beats a sprawling rule with twelve exceptions you'll forget to update.

For a one-off price cut on a single product you don't need a rule at all — the product's own Prices → Specific prices tab handles a fixed discount on that product alone, with no risk of it leaking onto anything else.

Make exclusions systematic, not ad hoc

The thread running through all of the above: a memory-based exclusion ("I'll just remember not to include the gift cards") fails the first time you're tired or in a hurry — and that's usually Black Friday, exactly when it's most expensive. Build the boundary into your catalog structure instead:

  • Create a "Never on sale" category or feature in Catalog and assign every protected product to it — gift cards, MAP items, limited editions, current loss leaders. Treat this as a catalog-management marker that drives your eligibility decisions, not a switch PrestaShop reads to auto-exclude from every discount.
  • Build your cart rules around the eligible group instead — scope each campaign positively to the categories that should be discounted, so protected items fall outside by definition. Note that a true global "exclude this category from every order discount" switch isn't native to cart rules; enforcing that reliably may need a module or custom logic.
  • Define catalog price rules positively — by the categories that should be discounted — so protected products are excluded by omission.
  • Re-check the list each season. Last year's new arrival is this year's discount candidate; last quarter's loss leader might now carry a healthy margin. Exclusions aren't set-and-forget.

If you'd rather not hand-tend this in the back office at all, the automation route packages the same logic — scoped, repeatable promotions with built-in exclusions — into a single configurable tool: Sales Revolution can help run scoped flash deals on the products you choose rather than the whole catalog. So what does that buy you? Targeting lives in the module's own settings, so you keep deals pointed at the products you intend — check its exclusion/targeting options for your campaign, and "discount everything" stops being one careless click away.

Tell customers what's excluded — before checkout

Nothing sours a sale like a shopper who added something expecting 20% off and discovers at the payment step that it's excluded. PrestaShop honours your exclusion correctly — the discount won't apply — but the communication is on you. State the exclusions plainly where the customer sees them: on the product page and in the promotion's terms, not buried in fine print they reach only after the disappointment. A banner or a short note on excluded products keeps the boundary honest both ways. If you're building promotional banners without a designer, Banner Revolution covers getting that messaging on-page quickly.

Discount with intent instead

The flip side of "some products should never go on sale" is knowing which ones genuinely benefit. Overstock that's tying up cash, end-of-season inventory, slow movers that get views but few orders — these are where a targeted discount does real work: it converts a price-resistant browser or clears shelf space for the next line. A product that already sells well at full price doesn't need a discount; it needs you to keep it in stock.

That's the difference between a blanket promotion and a deliberate one. Used with intent — the right products, the right exclusions, the right timing — discounting clears inventory and pulls in traffic without quietly bleeding margin across the whole catalog. Map your year so promotions land where they help in the seasonal sales calendar, automate the start-and-stop so nothing runs a day longer than intended with scheduled discounts, and when a big event like Black Friday arrives, your "Never on sale" group is already doing the one job that matters: keeping the products that shouldn't move out of the discount, no matter how busy the day gets.

Pairing exclusions with smarter mechanics — bundling to lift order value instead of cutting price, for instance — gets you the upside of promotions while the products that hold your margin and your brand stay exactly where they belong: at full price.

Share this post:
David Miller

David Miller

Over a decade of hands-on PrestaShop expertise. David builds high-performance e-commerce modules focused on SEO, checkout optimization, and store management. Passionate about clean code and measurable results.

Enjoyed this article?

Get our latest tips, guides and module updates delivered to your inbox.

Comments

No comments yet. Be the first!

Be the first to ask a question or share useful feedback.

Loading...
Back to top