Tab Commerce

Create your first campaign

Walk through building a draft campaign, adding a rule, and previewing it against a real test order before publish.

This guide builds one campaign end to end so the rest of Tab Promo makes sense in context. The example is a 10% order discount for any cart over $50 in USD. You can substitute your own threshold and percentage without changing the steps.

What you will end up with

  • One Campaign that is Not published, named so future operators can recognize it
  • One Active rule with one condition (cart subtotal) and one action (order percentage)
  • A Preview result against a real test order in the same store
  • A passing readiness check on the Publish page

You can do all of this on any plan. Nothing reaches live checkout until you publish. Core segmentation campaigns publish on every plan, with Free limited to 20 promotion orders a month; External data campaigns need Pro.

Step 1 — Create the campaign

From Campaigns, click Create campaign.

Under Choose a campaign setup, select Blank campaign and click Continue. (Templates create a starter rule for you; this guide builds the rule by hand.)

Fill in:

  • Campaign name — something a teammate would recognize months later (for example, Cart $50 → 10% off).
  • Internal description — optional, only visible to your team.
  • Runtime profile — Core segmentation. This profile reads native Shopify cart and customer signals. Use External data only when a rule depends on a metafield.
  • Owner kind — Automatic discount for this example. Pick Discount code only if customers must enter a code (you then enter the code, which must be unique in your shop). Purchase requirements only blocks checkout without creating a discount.

Click Create. You land on the campaign page.

Choose the runtime profile and owner kind carefully. The campaign page has no setting to change them: the runtime profile locks once the campaign has rules, and the owner kind locks after the first publish.

On the campaign page you can also set:

  • Active dates — a start date and time (in your shop’s time zone), plus an optional end date with Set end date. Leave them empty for now. The dates go to Shopify as the discount’s start and end; they are not a rule condition.
  • Combinations — whether this discount may combine with other product, order, or shipping discounts. A new campaign combines with none of them, which is a safe default for a first campaign.

Click Save after changing anything on this page.

Step 2 — Add a rule

In the Rules card, click the add button (Add rule). The rule editor has these sections:

  • Rule details — the rule name and description.
  • Conditions — the condition tree. Use Add condition for a single condition, or Add subgroup to nest groups matched with All, Any, or None.
  • Action — what happens when the conditions match.
  • Combining rules — what happens when other rules in the same campaign also match: Apply with every matching rule (the default), Use only the best matching rule, or Apply only with selected rules.
  • Status — Draft, Active, Disabled, or Archived. New rules start as Draft.

For the example, configure:

  • Condition — Cart subtotal, at least, 50
  • Action — Order percentage discount, 10%
  • Status — Active

Click Create. Only Active rules are previewed and published, so a rule left as Draft does nothing.

The subtotal amount is compared in the cart’s currency, without conversion. If your store sells in more than one currency, add a Cart currency condition so the threshold only applies to USD carts.

Step 3 — Preview against a real test order

Preview evaluates the campaign against a real Shopify order, not a synthetic cart. Before continuing, place a test order in Shopify whose subtotal is above 50 USD.

On the campaign page, open More actions → Preview. Enter the order’s numeric ID (the number in the Shopify admin URL admin/orders/<id>) in Order ID and click Run preview. Only orders from the last 60 days can be loaded.

Preview shows the order lines with the discount applied, the Matched rules, any Diagnostics, and the Evaluated context (subtotal, country, total quantity, login state, B2B). For this rule, it should show a 10% order discount on the test order.

If Preview reports that the campaign has no active rules, check that the rule’s status is Active and saved. If no rule matched, recheck the condition. The most common causes are a currency mismatch, the order subtotal not actually exceeding the threshold, or the wrong comparison (for example greater than instead of at least). If the order has no customer, customer conditions are evaluated as a guest checkout.

To test storefront display rather than checkout math, go to Storefront and click Open sandbox. The Storefront sandbox takes the same request JSON your theme sends to the storefront promotion API, runs it against the campaigns you select (draft, disabled, or active), and shows the output.

To see how this campaign stacks with your other campaigns on one order, use the Stack Simulator.

Step 4 — Run the readiness check

Click Publish on the campaign page. The Publish page runs the readiness check, and Publish now stays disabled (it reads Resolve errors first) until the check passes.

The readiness check confirms:

  • The campaign has at least one Active rule
  • Every Active rule’s conditions and action compile for the campaign’s runtime profile
  • The campaign fits the Shopify Function slot budget, shown under Function slot usage
  • Campaign-specific limits, such as no purchase requirements in a discount-code campaign, and the free gift rules
  • Purchase requirements still fit when combined with your other campaigns on the same runtime profile

Failures appear under Errors and warnings under Warnings. Fix errors before continuing. You can also add an optional Publish note before publishing.

Step 5 — Decide whether to publish

Publishing uses the campaign and rules as last saved, so save any changes first.

If your plan can’t publish the campaign (an External data campaign below Pro, or a Free store whose monthly orders are used up), the primary button reads View plans instead of Publish now. You can still use the readiness result to confirm the campaign is ready.

Otherwise, click Publish now. Publishing is asynchronous: Tab Promo returns to the campaign page while Shopify confirms the change, and the status shows Shopify update pending. Treat the campaign as live only when the status shows Live. The Publish, version, and roll back guide covers what happens from this point.

What to avoid

  • Mixing unrelated rules into the same campaign because it “saves a slot” — each campaign is a rollback boundary, so keep each campaign’s purpose narrow
  • Skipping Preview and going straight to Publish — the readiness check covers compile-time validity, not whether the rule does what you meant
  • Choosing External data for a rule that only needs native Shopify signals — you can’t switch the profile once the campaign has rules, and External data needs Pro to publish