🔗
Business

Affiliate/Referral System

Admin Settings

Referral tracking with commissions and payouts

Overview

Complete affiliate program for referral marketing. Users can become affiliates with unique referral codes/links. Track clicks, conversions, and automatically calculate commissions on shop orders or subscriptions. Manage commission approvals and process payouts.

Design Considerations

UX patterns and visual design notes for this feature:

  • Affiliate dashboard with stats
  • Referral link/code display
  • Click and conversion charts
  • Commission history table
  • Payout request form
  • Admin affiliate management
  • Commission approval workflow
  • Payout processing interface

Key Benefits

What makes this feature stand out:

  • Unique referral codes and links
  • Cookie-based click tracking
  • Configurable attribution window
  • Percentage or fixed commissions
  • Auto-track shop orders
  • Auto-track subscriptions
  • Commission approval workflow
  • Multiple payout methods
  • Affiliate dashboard with stats
  • Top affiliates leaderboard
Technical Note

AffiliateHelper for tracking and commissions. Call AffiliateHelper::trackVisit() early in request lifecycle (e.g., in Application bootstrap). Call AffiliateHelper::recordConversion() when orders are placed. Cookie stores referral code for attribution window.

Helpers
AffiliateHelper
Models
AffiliateAffiliateClickAffiliateCommissionAffiliatePayout
Database Tables
affiliateaffiliate_clickaffiliate_commissionaffiliate_payout

Configuration

Config Relationship Legend
DB overrides params.php🔗 DB related setting📋 DB stores value only
params.php Configuration

Config path: params['affiliates']

params['features']['affiliates'] => trueparams['affiliates']['autoApprove'] => falseparams['affiliates']['defaultCommissionRate'] => 10.00params['affiliates']['defaultCookieDays'] => 30params['affiliates']['commissions']['trackOrders'] => trueparams['affiliates']['payouts']['minimumPayout'] => 50.00
Note: Integrates with Shop for order tracking. Commission approval can be manual or automatic. Payouts can be scheduled or manual.