3.5 KiB
Affiliate Link Enrichment - Implementation Plan
This document outlines the phased implementation plan for the Affiliate Link Enrichment feature, based on the AFFILIATE_PROGRAM_ENRICHMENT.md brief and the current state of the WooNooW project.
1. Current State of the Project
- Frontend (
customer-spa/src/pages/Account/AffiliateDashboard.tsx): The affiliate dashboard currently only provides a single, generic storefront link:site.com/shop?ref=YOUR_CODE. This creates the "generic storefront" problem described in the brief. - Backend (
includes/Modules/Affiliate/AffiliateTracker.php): The backend is highly prepared. The tracking logic natively intercepts any page visit that has the?ref=parameter. Furthermore, it already captures UTM parameters (utm_source,utm_medium,utm_campaign,utm_content,utm_term,referrer_url) and stores them in thewoonoow_ref_utmcookie, which are eventually saved to thewoonoow_referralstable when an order is completed.
Phase 1: Immediate Opportunities (Low Effort, High Impact)
Because the backend already tracks referrals across the entire site and captures campaign parameters, Phase 1 can be implemented strictly via Frontend (SPA) changes, requiring no backend database migrations.
1.1 Implement a "Link Generator" UI (Customer SPA)
Add a new "Link Builder" section in the Affiliate Dashboard (AffiliateDashboard.tsx) where affiliates can:
- Single Product Link: Select a specific product (via a dropdown/search) to generate a link like
/product/slug?ref=CODE. - Category Link: Select a category to generate a link like
/shop?category=slug&ref=CODE. - Campaign Tracking: Add custom Campaign tags (
utm_campaign,utm_source, etc.) to the generated links.
1.2 Campaign Analytics UI
Since the woonoow_referrals table already stores UTM data:
- Affiliate Dashboard: Update the UI to show earnings/clicks grouped by
utm_campaignorutm_source. - Admin SPA: Add reports in the admin area to view referral performance by campaign, fulfilling the trackability requirement.
Phase 2: Medium-Term Opportunities (Curated Collections)
To fulfill the "Curated Collection Link" requirement (where an affiliate groups a themed set of relevant products), we need to build a new feature:
2.1 Backend Development
- Create a new custom database table or Custom Post Type (e.g.,
woonoow_affiliate_collections) that maps an Affiliate ID to a list of Product IDs, along with a title and description. - Create REST API endpoints for affiliates to CRUD their collections.
2.2 Frontend Development
- Affiliate Dashboard: Add a "My Collections" manager where affiliates can pick products, set a title, and generate a specific collection link.
- Storefront: Add a new dynamic route to the customer-spa (e.g.,
/shop/collection/:collection_id?ref=CODE) that fetches and displays only the specific products in that collection.
Phase 3: Advanced Opportunities (Smart Rotation)
To support "Controlled Smart Rotation" (rotating a small pool of products):
3.1 Smart Router API Endpoint
- Create a lightweight REST API endpoint (e.g.,
/wp-json/woonoow/v1/go/:rotation_id). - When a visitor clicks this link, the backend briefly evaluates the rotation rules, applies the
?ref=and UTM cookies server-side, and does a 302 redirect to the chosen product page.
3.2 UI/UX
- Add configuration settings in the Affiliate Dashboard to set up these rule-based or random rotation links.