Files
woonoow-docs/docs/marketing/affiliates.mdx

212 lines
10 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
title: Affiliate Program
description: Manage referral tracking, commissions, and payouts for your store's affiliate partners.
---
# Affiliate Program
The WooNooW Affiliate Program allows you to build a network of partners who earn commissions by referring customers to your store. This feature is fully integrated into the WooNooW Admin SPA and Customer Dashboard.
## Commission Rate Hierarchy
The affiliate system uses a **3-level priority hierarchy** for commission rates. This allows granular control over how much affiliates earn for each sale.
```
┌─────────────────────────────────────────────────────────┐
│ COMMISSION RATE PRIORITY │
├─────────────────────────────────────────────────────────┤
│ 1. Product-Specific Rate (Highest Priority) │
│ └─ Only used if product has "Enable affiliate │
│ commission" checked AND has a custom rate set │
│ │
│ 2. Affiliate Custom Rate │
│ └─ Set per-affiliate in Admin > Marketing > │
│ Affiliates > Edit individual affiliate │
│ │
│ 3. Global Default Rate (Lowest Priority / Fallback) │
│ └─ Set in Admin > Marketing > Affiliate Settings │
│ (Default: 10%) │
└─────────────────────────────────────────────────────────┘
```
### How Commission is Calculated
When an affiliate's referral makes a purchase:
1. **The system checks each line item in the order** (for orders with multiple products)
2. **Each product gets its commission rate determined individually**:
- If the product has affiliate enabled with a custom rate → Use that rate
- Else if the affiliate has a custom rate → Use affiliate's rate
- Else → Use global default rate
3. **Commission is calculated per item**: `commission = (item_total × rate) / 100`
4. **Total commission = sum of all item commissions**
### Example Scenario
| Product | Affiliate Enabled | Product Rate | Affiliate Rate | Global Rate | Affiliate Earns |
|---------|-------------------|--------------|---------------|-------------|-----------------|
| Product A | Yes | 30% | 15% | 10% | **30%** |
| Product B | No | — | 15% | 10% | **15%** |
| Product C | No | — | — | 10% | **10%** |
For an order containing all three products with a subtotal of Rp 100.000 each:
- Product A: Rp 100.000 × 30% = Rp 30.000
- Product B: Rp 100.000 × 15% = Rp 15.000
- Product C: Rp 100.000 × 10% = Rp 10.000
- **Total commission: Rp 55.000**
## Setting Up Commission Rates
### Global Default Rate
Set the default commission rate for all products and affiliates:
1. Go to **Admin > Marketing > Affiliate Settings** (or Module Settings)
2. Find **Default Commission Rate** field
3. Enter percentage (e.g., `10` for 10%)
4. Save changes
> [!TIP]
> The global default is used when no product-specific or affiliate custom rate is set.
### Per-Product Commission Rate
Override the commission for specific products:
1. Go to **Admin > Products** and edit a product
2. In the **General** tab, scroll to the **Affiliate** section
3. Check **"Enable affiliate commission for this product"**
4. Enter a custom **Commission Rate (%)**
5. Save the product
```
Product: Premium T-Shirt
├── Price: Rp 150.000
├── Affiliate: Enabled ✓
└── Custom Rate: 25%
When affiliate's referral buys this:
→ Affiliate earns 25% of Rp 150.000 = Rp 37.500
```
> [!NOTE]
> If you enable affiliate commission but leave the rate empty, the system will fall back to the next level in the hierarchy (affiliate custom rate → global default).
### Per-Affiliate Custom Rate
Override the commission for a specific affiliate:
1. Go to **Admin > Marketing > Affiliates**
2. Click on the affiliate in the list
3. Find the **Rate** column
4. Click the pencil icon to edit
5. Enter a custom percentage (e.g., `15`)
6. Click **Save**
> [!TIP]
> A "(custom)" label appears next to custom rates, while "(default)" indicates the affiliate is using the global rate.
## Referral Tracking Flow
```
┌─────────────┐ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ Customer │ │ Affiliate │ │ Customer │ │ Order │
│ clicks ref │ │ shares URL │ │ makes purch│ │ created │
│ link /ref/ │────▶│ w/ slug │────▶│ via cookie │────▶│ + tracking │
│ john-doe │ │ │ │ stored │ │ recorded │
└─────────────┘ └─────────────┘ └─────────────┘ └─────────────┘
┌─────────────┐ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ Payout │ │ Commission │ │ Referral │ │ Referral │
│ processed │ │ approved │ │ approved │ │ pending │
│ to │◀────│ after 14 │◀────│ (if order │◀────│ (after │
│ affiliate │ │ days hold │ │ not refund)│ │ conversion)│
└─────────────┘ └─────────────┘ └─────────────┘ └─────────────┘
```
## Link Sharing & Collections
To help affiliates market your products more effectively, WooNooW provides advanced tools for link generation and product curation directly in their dashboard.
### Link Builder
The Link Builder allows affiliates to generate trackable links to *any* page on your site, not just the homepage.
- **Custom Destination**: Affiliates can paste any store URL (e.g., a specific product or category page) to generate a referral link.
- **Campaign Tracking**: Affiliates can optionally append campaign parameters (e.g., `&campaign=summer-sale`) to track which marketing efforts are driving conversions.
- **One-Click copy**: Generated links can be copied to the clipboard instantly.
### Curated Collections
Instead of sharing links to individual products, affiliates can build custom "Collections" of products to share with their audience.
- **Collection Builder**: Affiliates can browse store products and add them to a named collection (e.g., "My Tech Setup" or "Summer Favorites").
- **Unique Collection Pages**: Each collection gets a dedicated, shareable URL (e.g., `/collection/my-tech-setup`).
- **Automatic Tracking**: When a customer buys any product from a collection page, the affiliate automatically earns commission.
### Smart Links (Auto-Rotator)
For affiliates running generic ads (like TikTok bio links or Facebook Ads), Smart Links maximize conversion by dynamically routing traffic.
- **How it works**: A Smart Link uses the `/go/` prefix (e.g., `/go/my-tech-setup`).
- **Auto-Rotation**: When a customer clicks a Smart Link, the system instantly picks one product at random from the associated collection and redirects the user directly to that product's page.
- **Zero Friction**: The redirect happens server-side via a 302 redirect, ensuring the referral tracking cookie is set before the customer even sees the product page.
## Admin Features
### Affiliate Management
- **View all affiliates**: Go to Admin > Marketing > Affiliates
- **Approve pending applications**: Click "Approve" button for pending affiliates
- **Edit custom rates**: Click pencil icon in the Rate column
- **Monitor earnings**: View Total Earnings and Payable Balance columns
### Referral Monitoring
- **View all referrals**: Admin > Marketing > Affiliates > Referrals tab
- **Filter by affiliate**: Select affiliate from dropdown
- **Filter by status**: pending, approved, rejected
- **Filter by date range**: Custom date filtering
### Payout Management
- **Create payouts**: Admin > Marketing > Affiliates > Payouts tab
- **Payment methods**: Bank Transfer or Store Credit
- **Store credit**: Automatically generates coupon code for affiliate
## Customer Dashboard
Affiliates can access their dashboard from **My Account > Affiliate Program**:
- **Referral link**: Short and clean unique URL with their slug (e.g., `/ref/john-doe`)
- **Link Builder**: Tool to generate referral links to specific products or pages.
- **My Collections & Smart Links**: Tool to curate product collections and get auto-rotating Smart Links.
- **Statistics**: Total earnings, pending earnings, commission rate
- **Referral history**: List of all conversions with status
- **Payout history**: Record of past payments
- **Payment details**: Bank account information for receiving payouts
## Configuration Options
| Setting | Location | Description | Default |
|---------|----------|-------------|---------|
| Default Commission Rate | Affiliate Module Settings | Global fallback rate | 10% |
| Cookie Duration | Affiliate Module Settings | Days referral cookie is valid | 30 days |
| Self-Referral | Affiliate Module Settings | Allow affiliates to refer themselves | Disabled |
| Auto-Approve | Affiliate Module Settings | Automatically approve new applications | Disabled |
| Holding Period | Affiliate Module Settings | Days before commission becomes payable | 14 days |
| Enable Curated Collections | Affiliate Module Settings | Allow affiliates to create and share product collections | Enabled |
## Commission Status Lifecycle
```
pending → approved → paid
↓ ↓
rejected (if refund/issue)
```
1. **Pending**: Commission recorded but held (14 days for refund protection)
2. **Approved**: Commission released and payable
3. **Paid**: Payout processed to affiliate
4. **Rejected**: Commission cancelled (order refunded or issue detected)