product selection
Build dynamic product rules
Learn how to build dynamic product rules with a safe Juniper & Trail example, shopper impact, options, and recovery checks. Dynamic conditions can match all rules or any rule. Product and variant fields have field-appropriate operators; always inspect the resolved preview before launch.
Before you begin
- Organize Shopify titles, tags, vendors, types, collections, and inventory
- Identify products or variants that must never change
- Know whether future catalog items should join automatically
Keep the campaign in Draft while you verify the configuration. Use a private storefront window where the guide changes shopper-facing behavior.
Step-by-step setup

Choose all products, rules, collections, or a hand-picked selection.
Define the matching condition used to keep the selection current.
Confirm the number of matching products before continuing.
Inspect matching products, variants, and original prices in the preview.
- Choose Conditions in the product scope.
- Choose Products must match all conditions or any condition.
- For each row select a product field, a compatible operator, and a non-empty value.
- Add or remove condition rows as needed.
- Refresh Preview and inspect false positives plus expected matches.
Dynamic conditions can match all rules or any rule. Product and variant fields have field-appropriate operators; always inspect the resolved preview before launch.
Juniper & Trail example
Juniper & Trail uses build dynamic product rules to include trail-ready products while protecting the Old Growth Logo Tee and sold-out variants with explicit exclusions. 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
Only resolved variants receive campaign behavior; mixed products can show different variant prices or eligibility on the same product page. 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 Build dynamic product rules.
- 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 | | --- | --- | --- | | All conditions | Narrow intersection | Every rule must match | | Any condition | Broad union | One rule can include product | | Text operators | Title, vendor, tag, type, description, handle | Equal, contains, starts/ends, excludes | | Date/status/collection | Structured product facts | Use field-appropriate operators |
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.