campaign operations
Resolve overlapping campaign conflicts
Learn how to resolve overlapping campaign conflicts with a safe Juniper & Trail example, shopper impact, options, and recovery checks. Badgy blocks unsafe overlap between function-backed and direct-price campaigns on the same scope. Discount-code campaigns do not mutate catalog prices, but shopper messaging can still conflict.
Before you begin
- Review campaign completeness and product preview
- Confirm authorization and theme status
- Know the restore consequences of the chosen discount route
Confirm the shop, current status, and intended consequence before changing anything. Use read-only status, preview, or history evidence first.
Step-by-step setup

Use the summary cards to check live, scheduled, and sale-product totals.
Inspect the active campaign and use its view, edit, revert, or end actions.
Check theme embed, badge, banner, background-job, and countdown health.
Search and filter past campaigns before opening their records.
- Open Review or Calendar for the intended shop and confirm the current record and status.
- Inspect conflicting campaign windows and shared product scopes; adjust timing or scope before launch.
- Read the inline summary, warning, or preflight before submitting; do not repeat a command while background work is running.
- Confirm no unsafe Function-versus-price-mutation overlap remains and review shopper messaging even for code campaigns.
- Confirm the resulting status and History/audit evidence, then spot-check Shopify or the storefront when the action has external effects.
Badgy blocks unsafe overlap between function-backed and direct-price campaigns on the same scope. Discount-code campaigns do not mutate catalog prices, but shopper messaging can still conflict.
Juniper & Trail example
Juniper & Trail uses resolve overlapping campaign conflicts on its controlled Weekend Trail Kit campaign, then checks phase status, History, and two representative storefront products. The documentation fixture uses realistic products, inventory states, variants, collections, and protected exclusions so the preview exercises the same decisions as a merchant catalog.
What shoppers will see
During activation or revert, storefront components can settle at different moments; use status rather than repeated clicks to determine completion. Check the relevant result from product through cart where applicable. For shopper-facing work, compare desktop and mobile and verify both an eligible and an ineligible item.
Common mistakes and troubleshooting
- Acting on the wrong shop. Confirm the Shopify store and campaign before following Resolve overlapping campaign conflicts.
- Trusting a stale preview. Refresh after catalog, schedule, discount, theme, locale, or market changes.
- Repeating a background command. Read status and History first; retry only when Badgy presents a recoverable failure.
- Skipping the consequence check. Confirm what changes for shoppers and what the end or restore path will do.
If the status reports revoked authorization, reconnect Shopify before retrying. If the result still differs from the preview, preserve the campaign ID and approximate time, then open support from this identified shop. Never send customer data, access tokens, or full catalog exports in feedback.
Related guides
Options reference
| Option | Use it when | Consequence | | --- | --- | --- | | Price mutation ↔ Function | Same scope/window | Unsafe conflict is blocked | | Discount code | Does not mutate catalog price | Not blocked by price guard; messaging can conflict | | Scope/time change | Resolve conflict | Re-run preview/preflight |
Badgy behavior in this guide is reviewed against the repository's shipped UI, service rules, and feature design documents. Shopify-owned theme, Markets, Flow, billing, and discount behavior can also depend on the store's Shopify configuration; consult the Shopify Help Center for that platform configuration.