Details
-
Type: Story
-
Status: Closed
-
Priority: Major
-
Resolution: Won't Fix
-
Affects Version/s: 3.1.0
-
Fix Version/s: None
-
Component/s: Plugins
-
Labels:None
-
Epic Link:
Description
Create an affiliate system plugin, or add an affiliate system to the order plugin. There will need to be some cooperation between affiliate and order systems for tracking of referrals and orders.
Overview
The affiliate system allows clients to refer people using a specially crafted link that creates a cookie that tracks sign-ups.
When a customer signs up, the client who referred them is given credit for the referral. Generally, a referral has to age for a certain period of time (the new customer cannot cancel within x days) and then a cash credit becomes available within the affiliate system that can be either withdrawn, or converted a credit to their account.
Some basic graphs in the client area are necessary to show referrals and conversions, as well as the conversion rate. Other stats like the current balance, and pending balances should be included.
A special link, or text area with code for rendering a banner ad should be available as well, so the client can paste it into their website.
Basic staff settings
- How long until a conversion matures?
- Can the money be withdrawn via PayPal or Check, or converted to an account credit, or both (Customer decides how they want it)?
- What is the minimum and maximum withdrawal amounts?
- Banner ad and link setup. (Should be able to add multiple different banners, in various sizes)
- One-time or recurring commission?
Staff Area
Client Profile Page
- Add a new link under Actions called "Manage Affiliate"
- Clicking the link will display a new section on the right widget area that shows essentially the same information the client can see, but also a setting override for: Commission Type: Fixed or Percentage, Commission Amount (If Fixed), Balance required to withdraw, and Withdrawn Amount.
Affiliate Overview
- Add a new secondary nav link called "Affiliates" under Clients
- Page will list all affiliates, similarly to listing clients, but will include only clients signed up as affiliates
- Table will show stats including clicks, signups, conversions, pending commission amount, mature commission amount, and total withdrawn along with their Client ID and name (at the beginning of the table). Clicking the client ID will take you to the client profile page as if you clicked Affiliates under Actions for that profile.
Affiliate Payout Requests
- Under Clients > Affiliates there should be 2 tabs. One for the Overview above, and another called "Payout Requests".
- When a client requests a payout, the request should be added to this section.
- Staff will then communicate with the client to make the payout, and mark the request resolved. Marking the request resolved will move the requested funds from available/mature to paid out. Staff should be able to enter the amount paid out, but it will default to the amount the client has requested.
Settings
- Under Clients > Affiliates, a cog/gear icon in the upper right of the widget will take you to settings
- Under the settings, you may set the minimum withdrawal amount, accepted pay out options, time to maturity, payout percentage, payout amount, affiliate bonus deposit (for signing up)
Client Area
- Affiliates nav link, visiting the page will allow the client to sign up to be an affiliate
- Admins can set HTML content through a WYSIWYG editor for this page, and we'll include some default text. Editable someplace in the admin area. A button would be included below this information and be named "Activate Affiliate Account".
- Clicking the button will activate the affiliate account for this user and generate an affiliate link that they can use.
- Going to the Affiliates nav link for the client will now show information about their affiliate account including: clicks, signups, conversions, pending commission amount, matured commission amount available to withdraw, and total amount withdrawn.
- When the matured commission amount reaches a minimum set by admins, a withrawal request can be made. The client will be able to enter a payout amount equal or less than they have available to withdraw, as well as select the payment method they desire based on the options available in the settings.
Payout Requests
When clients submit a payout request, these requests need to go someplace where staff can see them and approve. Possibly a 2nd tab in the widget under Clients > Affiliates?
Email templates should be created to:
- Send an email to a client that their payout request has been received
- Send an email to an admin(s) that a payout request has been submitted.
- Send a monthly email to affiliates (on the 1st) with stats on the previous month. Automation task required.
Notes
Referral links should not be obvious, do not use ?aff=someid for example. Whatever the URL, you should be able to append data to the end of the URL to specify where to redirect the visitor after logging the affiliate click and cookie. This would allow linking to a specific order form or specific product. If no path is specified, default to the /order/ URL that would display the default order form or a listing of order forms.
Request also here https://requests.blesta.com/topic/built-in-affiliate-program