Coexistence with Other Discount Plugins
Merchants migrating to Dino Discounts often still have a competitor engine installed for a while — Advanced Coupons, Discount Rules for WooCommerce (Flycart), Smart Coupons, and similar. Running two discount engines on one cart is supported and will not crash your store, but you should understand the precedence contract below so the final price is the one you expect.
The short version: Dino Discounts never removes or invalidates another plugin’s coupons, and another plugin never removes ours. When both target the same items, their effects stack (compound) unless you tell us not to — and our “don’t stack” setting only reacts to coupon-code discounts, not to discounts applied as cart fees or as edited item prices. For a clean cutover, finish your rules in Dino Discounts and then deactivate the old engine.
How Dino Discounts applies a discount
Section titled “How Dino Discounts applies a discount”Dino Discounts delivers every discount as a virtual WooCommerce coupon with a pre-computed amount. We do not add cart fees and we do not edit item prices. WooCommerce simply distributes our number across the cart, the same way it distributes any coupon. This matters for coexistence:
- We coexist cleanly with any coupon stored as a real WooCommerce coupon
(a
shop_couponpost) — including native WC coupons and Advanced Coupons, which store real coupon posts. Both apply; neither cancels the other. - We evaluate our rules late in WooCommerce’s price calculation (priority 20). A competitor that lowers item prices earlier will already have changed the cart before we read it (see Compounding below).
Choosing how to coexist (the coexistence-mode setting)
Section titled “Choosing how to coexist (the coexistence-mode setting)”Settings → Coupon interaction → Other discount plugins lets you pick how Dino Discounts behaves when another discount/coupon plugin is active or a native WooCommerce coupon is on the cart. There are three modes:
- Warn of conflicts (default). Dino Discounts keeps applying exactly as it always has. When it detects a conflict — a known competitor discount plugin is active, or a WooCommerce coupon is applied to a cart alongside a Dino discount — it surfaces a dismissible admin notice so you can check the combined total. It never changes the discount automatically. This is the default because it preserves your store’s existing behaviour and only adds visibility.
- Yield — step aside. When a known competitor discount/coupon plugin is active, or a native WooCommerce coupon is applied to the cart, Dino Discounts suppresses all of its own discounts for that cart, so there is no risk of a double discount. Use this during a migration when you want the other engine (or coupon) to be the single source of truth until you switch over. (This is broader than the older “disable when a WooCommerce coupon is applied” switch, which only reacts to applied coupon codes.)
- Take precedence — Dino applies first. Dino Discounts applies its discount and a native WooCommerce coupon then applies afterward, on the already-Dino-reduced subtotal (WooCommerce’s normal sequential coupon distribution). Dino never yields in this mode. Use this when your automatic Dino discounts are the headline offer and any coupon a shopper enters should come off the reduced price.
Detection is shared by all three modes: a conflict is “a known competitor discount/coupon plugin is active” (the same list that drives the conflict admin notice) or “a native WooCommerce coupon is applied to the current cart.” As with the older stacking gates, fee-based and item-price-based competitors are not detected (see below).
The precedence contract
Section titled “The precedence contract”What wins when both engines target the same cart or line, with Dino Discounts’ default settings:
- Native WC coupons and any real
shop_couponpost (including Advanced Coupons): coexist cleanly. We never invalidate them; they never invalidate us. If a shopper types a code that happens to match one of your Dino coupon IDs, WooCommerce’s real coupon wins — Dino Discounts yields and shows you an admin notice about the collision. - Two coupon-code discounts on the same items: both apply. WooCommerce applies coupons sequentially, so the second one sees prices already reduced by the first. The order follows WooCommerce’s coupon-application order, not a Dino Discounts setting.
- A competitor that edits item prices (for example, Discount Rules for WooCommerce in product-price mode) before our evaluation: our percentage is calculated against the already-reduced price, so the two discounts compound. See below.
- A competitor that applies its discount as a cart fee: this is invisible to our “don’t stack with other discounts” setting (that setting only looks at applied coupon codes). Our rules will still fire even with the setting on.
- Our “disable when a WooCommerce coupon is applied” setting: suppresses only our discounts. It never removes the other plugin’s coupon, and it only triggers on coupon codes — never on fees or edited prices.
When discounts compound
Section titled “When discounts compound”If a competitor lowers item prices before Dino Discounts evaluates (priority 20), our percentage discount applies on top of their reduced price. Example:
- A product is £100.
- The competitor applies “20% off” by editing the item price → £80.
- A Dino Discounts rule applies “10% off” → £72, not £70.
This is compounding, and it is usually not what you intend. It happens silently because each engine is doing exactly its own job — neither one is “wrong,” but the combined result is steeper than either rule alone.
Avoid it by running one engine at a time on the same products. Either:
- Finish migrating your rules into Dino Discounts and deactivate the competitor, or
- Keep the two engines on non-overlapping products/categories so they never both target the same line.
”Don’t stack” only sees coupon codes
Section titled “”Don’t stack” only sees coupon codes”Dino Discounts has two ways to avoid stacking with other discounts:
- A global “disable Dino discounts when a WooCommerce coupon is applied” switch, and
- A per-rule “only when no WooCommerce coupon is applied” condition.
Both look only at applied coupon codes. A competitor that discounts via a cart fee or by editing item prices carries no coupon code, so these gates do not see it and your Dino rules still fire. If you rely on “don’t stack” to prevent double discounts, confirm the other engine actually applies its discount as a coupon, not as a fee or a price edit.
Coupon codes and virtual coupons
Section titled “Coupon codes and virtual coupons”Dino Discounts intercepts shopper-typed codes to resolve its own coupons. By
default it resolves before WooCommerce (precedence dino_first). This is
correct for almost everyone, but if you run another plugin that also supplies
coupons without a backing shop_coupon post (a purely “virtual” coupon
provider), switch Dino Discounts’ coupon precedence to wc_first so the
other plugin’s codes resolve first. Codes backed by real coupon posts (native
WC, Advanced Coupons) are already protected and do not need this change.
Recommended migration path
Section titled “Recommended migration path”- Build and preview your rules in Dino Discounts with the competitor still active — use the Cart Preview to check the numbers.
- Verify on a real cart and at checkout, not just the rule editor preview, so you catch any compounding from the other engine.
- Once your Dino rules produce the prices you want, deactivate the competitor. The conflict notice in your WordPress admin will clear.
Related
Section titled “Related”- Caching & Performance — sibling reference page on plugin compatibility.
- Multi-Currency Compatibility — another coexistence reference for multi-currency plugins.
- Switch from Discount Rules — migration guide for Flycart users.
- Testing with Cart Preview — how to verify the final price before going live.