Back to all articles
ShopifyGrowth & Conversion

Campaign Codes, Not Chaos: Running Launches, Collabs and Flash Sales on Shopify Price Rules

Hand-made discount codes drift out of sync with the store, stack with offers they should not, and report nothing. Learn how a campaign code differs from an affiliate code, how Reveshare campaigns stay tied to Shopify price rules, which settings to use for a launch, a collab and a flash sale, and the checklist to run before you go live.

Campaign Codes, Not Chaos: Running Launches, Collabs and Flash Sales on Shopify Price Rules

Every brand has a graveyard of discount codes. LAUNCH20 from a product drop two years ago, still active. A creator collab code that was supposed to end on Sunday and is now the default checkout discount for anyone who found it on a coupon site. A flash sale code that stacked with free shipping because nobody set the combination rule, on the busiest weekend of the year.

None of these were mistakes when they were created. They became mistakes because a code made by hand in Shopify has no owner, no end date anyone remembers, and no report. The offer lives in one place, the tracking in another, and the creators promoting it in a third.

This post is about running time-boxed offers properly: what a campaign code is and how it differs from an affiliate code, why hand-made codes drift, how Reveshare campaigns stay tied to Shopify price rules, the settings that matter, three setups you will actually use, and the checklist to run before anything goes live.

Run your affiliate program on Shopify

Install Reveshare from the Shopify App Store and start turning customers into ambassadors.

Get the app →

1. Affiliate code versus campaign code

The two get confused because they both look like a string typed at checkout. They do different jobs.

An affiliate code is attribution. It says which partner brought this shopper. When SARAH15 or a Sneakylink's minted code is on an order, Sarah gets paid. The customer discount attached to it is real, but the code's purpose is to decide who earned commission.

A campaign code is an offer. It says what the customer gets, for how long, on which products. LAUNCH20 does not belong to anyone. It belongs to a window and a purpose, and its job is to move a specific set of orders in a specific period.

Affiliate codeCampaign code
Owned byOne partnerThe brand
PurposeDecide who gets paidDrive a time-boxed offer
LifetimeAs long as the partner is activeStart date to end date
Reported asCommission and partner performanceCampaign revenue and orders
Shared byThe partner, in their contentEveryone, everywhere

The confusion becomes expensive when a brand uses one code for both. A creator's permanent code carrying a launch-week discount means the launch discount never ends. A campaign code with no attribution means creators who promoted the launch cannot be paid on it. Keep them separate, and be explicit in every brief which one does what. The post on Q4 creator briefs covers how to phrase that in a message creators will actually read.

2. Why hand-made codes drift

Creating a discount code in the Shopify admin takes a minute, which is exactly the problem. It is so easy that nobody treats it as infrastructure.

No single record. The code exists in Shopify. The reason it exists is in a Slack thread. The creators who were told about it are in a spreadsheet. When someone asks in six months why an order got twenty percent off, nobody can answer.

End dates get skipped. Shopify lets you set one, but under deadline pressure the field is often left empty. The offer runs until someone notices the margin.

Stacking is the default nobody checks. Whether a code combines with other order, product or shipping discounts is a setting that has to be made deliberately. Left alone, a launch discount can combine with a sitewide sale and a free shipping code on the same order.

Inventory does not know about it. A hand-made code promising a specific product at a discount has no connection to how many units are left. The offer outlives the stock.

It reports nothing. Shopify's discount report shows uses. It does not show revenue by campaign over time, orders against the previous period, or which channel the code came through.

0
is how many of these problems a hand-made code solves on its own

Every one of them is solvable in Shopify with enough discipline. The point of a campaign tool is that the discipline is built in, so a code created at eleven at night before a launch still has an owner, an end date and a report.

3. How Reveshare campaigns stay in sync with Shopify

A campaign in Reveshare is not a separate discount system layered on top of the store. It is created as a Shopify price rule with a discount code, and Shopify stays the system of record for redemptions.

That has three consequences that matter in practice. Redemptions are counted by Shopify at checkout, so the usage cap and once-per-customer rule are enforced where the order happens, not checked after the fact. Inventory is Shopify's, so a product-scoped campaign never sells what is not there. And the code is a real Shopify discount, so it works in every channel that Shopify checkout supports, without a custom integration.

What a campaign gives you that a raw code does not

  • A record of why the code exists: name, dates, products and rules, in one place.
  • Start and optional end dates that switch the offer on and off without a reminder.
  • Activate and pause controls, so a campaign can be stopped mid-run if stock or margin demands it.
  • Usage caps, once-per-customer behaviour and minimum subtotal or quantity, set at creation.
  • Explicit control over stacking with other order, product and shipping discounts.
  • A copyable campaign link that lands the shopper with the code applied.
  • A dashboard for the campaign's revenue and orders, with monthly trends and period-over-period change.

Product tour

See how attribution actually works

Sneakylinks track the sale even when the code is never typed. Post-checkout referrals turn the thank-you page into your recruiter.

4. The settings, and what each one is for

The campaign form is short. Each field closes one of the drift problems above.

Scope: all products or a tight lineup. Storewide is right for a seasonal sale. A specific product or collection is right for a launch or a collab, where the offer should not leak onto your full-price catalogue.

Minimum subtotal or quantity. Optional. A minimum subtotal turns a discount into a basket-builder. A minimum quantity suits bundles and multi-buy offers.

Usage cap. The total number of times the code can be redeemed. Set it for anything scarce, and for anything you expect creators to share widely, so a leaked code has a ceiling.

Once per customer. Almost always on. The one exception is a loyalty-style code meant for repeat use, which is a different tool.

Stacking. Whether this campaign combines with other order discounts, product discounts or shipping discounts. Decide it per campaign. A launch offer usually should not combine with anything. A free shipping campaign often should combine with product discounts.

Start and optional end dates. The start date is when the code becomes valid. The end date is when it stops. Leave the end open only for evergreen offers, and know that you are doing it.

Active or paused. A campaign can be built ahead of time and paused until the day, then activated. It can also be paused mid-run without deleting anything.

The campaign link. Each campaign has a copyable link alongside its usage and revenue figures. The link applies the code for the shopper, so creators, emails, ads and social bios can all use one link and the same code, and every channel lands on the same offer.

5. Three setups you will actually use

Product launch

The goal is a strong first week on one product without discounting the rest of the store.

  • Scope: the launch product only.
  • Dates: launch day at midnight to the end of day seven.
  • Once per customer: on. Usage cap: set to the launch stock if it is limited.
  • Stacking: off. The launch offer stands alone.
  • Link: in every creator brief, the launch email and the bio link. Creators share their own Sneakylink for attribution and mention the campaign code for the offer.
  • Read the dashboard at day three and day seven. Campaign orders against the product's total orders tells you how much of the launch the offer carried.

Creator collab

A named creator gets a co-branded offer for a defined window. The creator wants it to feel like theirs. You want it to end.

  • Scope: the products in the collab, often a small set.
  • Dates: the collab window, typically two to four weeks.
  • Once per customer: on. Minimum quantity: only if the collab is a bundle.
  • Stacking: off with other order discounts, on with shipping if free shipping is part of the promise.
  • Attribution: the creator's own Sneakylink carries the sale to them. The campaign code is the customer-facing name, which can include the creator's name so it feels personal.
  • Read the dashboard weekly. Compare campaign revenue against the creator's attributed revenue in the same period. If the campaign is large and the creator's attributed share is small, the code has leaked beyond their audience.

48-hour flash sale

Short, storewide or near it, and the most likely to go wrong on stacking and caps.

  • Scope: storewide, or a collection if you want to protect new arrivals.
  • Dates: exact start and end, to the hour if the form allows, otherwise the two calendar days.
  • Once per customer: on. Usage cap: a total that protects margin if the sale is picked up by deal sites.
  • Stacking: off with everything. Two days is not long enough to fix a stacking error once it is live.
  • Link: the campaign link in the email, the site banner and creator stories. Build the campaign the day before and leave it paused. Activate it when the email goes out.
  • Read the dashboard the morning after. Period-over-period change against the previous 48 hours shows the real lift, not just the sale's revenue.

6. The pre-launch checklist

Run this on every campaign, including the small ones. It takes five minutes and catches the errors that cost weekends.

  1. Say the offer in one sentence

    "Twenty percent off the launch collection from Monday to Sunday, once per customer, not combinable." If you cannot say it, the settings are not decided yet.

  2. Check scope against the catalogue

    Open the product or collection the campaign targets and confirm it contains exactly what you mean. A collection that auto-includes new arrivals will discount next week's launch too.

  3. Confirm the end date exists

    Unless the offer is deliberately evergreen, there is an end date, and it is the one in the brief and the email.

  4. Read the stacking rule aloud

    Then decide whether you would be happy seeing it combined with your current sitewide promotion and your shipping offer.

  5. Place a test order

    Use the campaign link on a low-value product. Confirm the code applies, the discount is right, and a second attempt from the same customer is refused if once per customer is on.

  6. Tell creators which code does what

    Their Sneakylink for attribution, the campaign code for the offer. One line in the brief.

  7. Leave it paused until the moment

    Build it early. Activate it when the first channel goes live, and not before.

Conclusion

A campaign code is an offer with a start, an end and a report. An affiliate code is a claim on commission. Keeping them separate is the first fix, and running the offer as a Reveshare campaign backed by a Shopify price rule is the second, because then redemptions, caps, inventory and the discount itself all live where the order happens. Decide scope, dates, caps, once-per-customer and stacking at creation, share one campaign link everywhere, and read the campaign's own revenue and orders against the prior period instead of guessing from the store total. Do the five-minute checklist every time, and the code graveyard stops growing.

Talk to our team

Book a short call to see how Reveshare fits your store and ambassador goals.

Book a demo →

Frequently Asked Questions