Launch an affiliate program step by step | Harmonia
Launch an affiliate program in five steps: connect Stripe billing, install the Shopify app, run the self-test, set commission and windows, then publish.
The path, in five steps
To launch a program on Harmonia: connect Stripe for billing, install the unlisted Shopify app, run the self-test, set your commission and the attribution and refund windows, then publish. The first three steps are the readiness gate. Your program can go live only after all three pass. Most brands finish in under an hour.
You pay only when an athlete drives a real attributed sale: the commission you set, in full to the athlete, plus a 20% platform fee on top, billed to you. There is no discount code for the shopper to enter. No subscription, no setup fee, no commission bond.
| Step | What you do | Counts toward the readiness gate |
|---|---|---|
| 1. Connect Stripe billing | Accept net-30 terms; we create a Stripe Customer. | Yes |
| 2. Install the Shopify app | Install the unlisted custom app from a direct link. | Yes |
| 3. Run the self-test | Place a test order; confirm attribution end to end. | Yes |
| 4. Set commission and windows | Choose a flat $ or %; set the attribution and refund windows. | No (drafts allowed anytime) |
| 5. Publish | Publish so athletes can apply. | Gated by steps 1 to 3 |
For the product-side how-to, see the help article on program setup end-to-end. For the full picture of how a curated program runs once it is live, read the pillar guide on running a curated affiliate program.
Step 1: connect Stripe billing
We invoice you monthly via Stripe Billing, net-30, on the 1st of the following month: the commission your athletes earned plus the 20% platform fee. Athletes are paid from the cleared commission once your invoice clears. No subscription, no setup fee, no commission bond.
To connect billing, you accept the net-30 terms and we create a Stripe Customer for your brand. That is the only billing step before launch. Stripe holds your payment details; you do not enter card numbers into Harmonia.
This step counts toward the readiness gate. A program cannot publish until billing terms are accepted and a Stripe Customer is connected.
Step 2: install the Shopify app
Attribution runs through your own Shopify store. You install an unlisted custom app from a direct link, so there is no App Store review to wait on.
The app does two things:
- Registers the orders/create webhook. This is how we hear about a new order and match it on our server.
- Injects a small script that writes a
?ref=value into your Shopify cart note attribute when a shopper arrives from a tracking link.
The shopper never sees or enters anything. There is no pixel for an ad blocker to strip and no third-party cookie to clear. The step-by-step install lives in the help article on installing the Shopify app.
This step counts toward the readiness gate.
Step 3: run the self-test
The self-test is one real test order you place in your own store before any athlete sends traffic. It proves attribution works end to end.
What it confirms:
- The injected script wrote a
?ref=value into your cart note attribute. - The order carried that attribute to checkout.
- Our server matched the order to the right athlete through the orders/create webhook.
Run it before you invite anyone
The self-test is the slowest step, but it is a few minutes, not hours. Running it now means the first real sale an athlete drives is credited correctly, instead of discovering a gap after the fact.
This step counts toward the readiness gate. The gate exists so that a program cannot publish until you have proof, from your own store, that a sale will be credited.
Step 4: set commission and the windows
You set the commission per program: a flat dollar amount or a flat percentage. The athlete receives the full commission. We add the 20% platform fee on top, billed to you. The fee is charged only when an athlete drives a real attributed sale.
$50commission you set $50athlete receives in full $1020% platform fee, billed to you $60your total cost on that saleYou also set two windows, and they do different jobs:
- Attribution window. How long after a click a sale still counts for that athlete. Set in days, per program. Credit holds for the full window even if the shopper comes back and buys a few days later.
- Refund window. The period during which a refund can reverse a commission. If a refunded order falls inside this window, the commission is reversed, pro-rated to the amount refunded.
You can draft the commission and windows at any point, even before billing or the Shopify app are done. The program stays in draft until the readiness gate passes. To see how the math flows from commission to invoice, read what brands pay: the commission pool and the fee.
Step 5: publish
Once the readiness gate passes, you publish the program and athletes can apply.
Approval is a two-way decision. You approve the athlete, and the athlete accepts your program and its terms. Neither side joins without the other, so every partnership is one both parties chose. The applicants you review carry a click quality score, a sortable signal you can use to compare them. It never blocks an athlete and never triggers an automatic clawback; you make the call. See affiliate approvals and the two-way veto for how the review works.
Optional: branded emails and program assets
Two things are optional. They never block publishing, and you can add them before or after you go live.
- Branded emails. Apply your brand's voice to the messages athletes receive (an approval, for example) instead of the default copy.
- Program assets. Upload the files athletes use to promote you, such as approved copy and creative.
Skip both if you want to launch faster. Add them when you are ready; neither is part of the readiness gate.
What "live" means
When a program is published, athletes can find it, apply, and, once approved, get a tracking link. The link is per program, one per brand relationship, not per product. A QR code or a destination tag carries the same ?ref= attribution, so however an athlete shares it, the sale is credited the same way.
From there, the rest is automatic: sales are credited server-side, you are invoiced monthly for the commission plus the 20% fee, and athletes are paid through Stripe Connect once your invoice clears.
FAQ
What is the order of steps to launch a program?
Five steps: connect Stripe billing, install the Shopify app, run the self-test, set your commission and windows, then publish. The first three are the readiness gate. Your program can go live only after all three pass. You can draft commission and windows at any point, but the program stays in draft until billing is accepted and the self-test passes.
What is the self-test and why do I run it?
The self-test is a real test order you place in your own store to prove attribution works end to end before any athlete sends traffic. It confirms two things: the injected script writes a ?ref= value into your Shopify cart note attribute, and our server matches that order through the orders/create webhook. It takes a few minutes and it is the slowest step. You run it so the first real sale an athlete drives is credited correctly, not patched after the fact.
What blocks my program from publishing?
Three things must pass first: billing terms accepted with a Stripe Customer connected, the Shopify app installed with a passing self-test, and the program filled in with a commission set. Those three are the readiness gate. Branded emails and program assets are optional and never block publishing.
How long until I'm live?
Most brands finish in under an hour. The slowest step is the Shopify self-test, which takes a few minutes to place a test order and confirm attribution. Once the readiness gate passes and you publish, your program is live and athletes can apply.
Do I need a discount code to launch?
No. Attribution is first-party and server-side. When someone clicks an athlete's tracking link and buys, the order is credited automatically through your Shopify store, with no discount code for the shopper to enter. You keep full price on every sale you credit.