> For the complete documentation index, see [llms.txt](https://docs.bloop.plus/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.bloop.plus/help/test-affiliate.md).

# Testing Affiliates

An affiliate program is a money flow, not just a marketing channel — every tracked sale ends in a commission you actually pay out. That makes a misconfigured program expensive in a way a quiet referral bug is not: a wrong commission rate, an exclusion that does not apply, or a payout that overpays all cost real money once partners are live. Testing before launch lets you watch each decision in that chain — recruit, track, approve, pay — against a test affiliate, so the only sale at stake is one you placed yourself.

The approach is to run one full sale, end to end. Register a test affiliate and approve them, preview their portal, drive a small sale through their link or coupon, confirm the commission calculates correctly, run a payout, and check every email along the way. This page is that dry run, step by step, before any real partner is watching.

> **Best practice — verify the money flow before partners join.** Run this short pre-launch checklist:
>
> 1. App embed on, with an active [campaign](/affiliate-program/getting-started.md) and the commission structure you intend to use.
> 2. A test affiliate registered, approved, and previewed with **login as**.
> 3. One real test sale tracked and the commission matching your rules in [affiliate sales](/affiliate-program/sales.md) — exclusions, caps, and tiers included.
> 4. A test [payout](/affiliate-program/payouts.md) recorded and confirmed, then reverted.
> 5. All affiliate emails verified and test data cleaned up before launch.

### Before you start

Have these ready, or the test will not produce a result:

1. **App embed is on.** Affiliate links and any on-site affiliate surfaces only work when the app embed block is enabled in your theme. See [the FAQs](/help/faqs.md) for how to turn it on.
2. **A campaign is active** with the commission structure you want to test — flat, percentage, or tiered. Review it in [affiliate campaigns and commissions](/affiliate-program/campaigns.md).
3. **At least one payment method enabled**, so you can complete the payout step. Configure these in [affiliate settings](/affiliate-program/settings.md).
4. **A test email inbox** you control to act as the affiliate and receive their notifications.

### 1. Register a test affiliate

Create an affiliate the same way a real partner would join, so you exercise the registration path:

1. Open your affiliate **registration form** (the self-registration link) and apply with a test name and email.
2. The applicant lands in your **Affiliates** tab with a **pending** status.
3. Alternatively, add the affiliate manually from the Affiliates tab if you want to test the manual-add path instead.

See [managing affiliates](/affiliate-program/affiliates.md) for both paths.

### 2. Approve the test affiliate

A pending affiliate cannot earn, so approve yours:

1. Open the affiliate's record in the **Affiliates** tab.
2. Change the status to **approved**.

Approving activates their unique referral link immediately and triggers the approval email. Note their referral link, and the discount coupon if you assigned one — you will use it in the next step.

### 3. Preview the affiliate portal with "login as"

Before driving a sale, confirm the affiliate sees the right portal:

1. From the affiliate's record, use **login as** to open their portal session.
2. Check their stats, referral link, and payout details render correctly and match your branding.

There is also a demo portal you can open without selecting a specific affiliate, useful for a quick branding check. Details are in [managing affiliates](/affiliate-program/affiliates.md).

### 4. Drive a test sale

Now act as a customer who arrives through the affiliate:

1. Open the affiliate's referral link in a fresh browser so the attribution cookie is set, or apply the affiliate's coupon at checkout.
2. Add the cheapest product you have and complete a real Shopify order within the campaign's cookie window.

Keep the order small. To avoid real spend, use a draft order marked paid, a 100%-off internal discount, or Shopify's test payment gateway (Bogus Gateway) in test mode. The order still has to complete for the sale to register.

### 5. Confirm the sale and commission

Open the **Sales** tab and find your test sale. Check:

* It is linked to the right **affiliate** and **campaign**.
* The status is **Pending** (every sale starts pending until you approve it).
* The commission matches your campaign rules — the correct percentage or flat amount, with exclusions, caps, and tiers applied as configured.

Each sale stores a snapshot of the rule that applied, so you can see exactly why the commission came out as it did. The full calculation logic is in [affiliate sales tracking](/affiliate-program/sales.md).

#### Test without a storefront purchase (optional)

If you cannot place a storefront order, add a sale by hand instead:

1. In the **Sales** tab, create a new sale.
2. Select your test affiliate — they must be **approved**, since sales cannot be created for pending or rejected affiliates.
3. Enter the order details, total sale, and commission.

Manual sales are flagged as manual so you can tell them from tracked ones.

### 6. Approve the sale

Confirm the approval step works:

1. In the **Sales** tab, **approve** the pending test sale (individually or via bulk approve).
2. The affiliate's approved balance updates, and an approval email goes to the affiliate.

Try rejecting a second test sale too, to confirm the declined email behaves as expected. See [affiliate sales tracking](/affiliate-program/sales.md).

### 7. Run a test payout

Turn the approved balance into a payout to verify the money flow:

1. Open the **Payouts → Approved** view and select your test affiliate.
2. Review the approved sales in their balance and record a payout.

When you record it, Bloop creates a payout record, flips the included sales to **paid**, reduces the approved balance, and sends the affiliate a "new commission payout" email. If anything looks wrong, you can **revert** the payout to return the sales to approved. The full behaviour is in [affiliate payouts](/affiliate-program/payouts.md).

### 8. Check the affiliate emails

Confirm the affiliate received the right notifications along the way — registration/approval, sale approved (and declined if you tested a rejection), and the new-payout email. Review and edit any of these templates under your affiliate email settings; see [affiliate email notifications](/affiliate-program/emails.md).

### 9. Reset before you go live

Clean up your test data so it does not skew real reporting:

* Reject or remove the test sale and revert the test payout.
* Set the test affiliate to **rejected** (there is no delete-only "paused" status), or remove them.
* Confirm the app embed stays **on** and your real campaign settings are restored.

Once a test sale has flowed cleanly from registration through approval, commission, and payout — with the right emails firing — your affiliate program is ready to launch.

### Related

* [Getting started with affiliates](/affiliate-program/getting-started.md) — the setup this test validates.
* [Managing affiliates](/affiliate-program/affiliates.md) — registration, approval, and "login as".
* [Affiliate sales tracking](/affiliate-program/sales.md) — how the commission in step 5 is calculated.
* [Affiliate payouts](/affiliate-program/payouts.md) — the payout you run in step 7.
* [Affiliate email notifications](/affiliate-program/emails.md) — the emails you check in step 8.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.bloop.plus/help/test-affiliate.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
