Documentation on how to implement referral credits using the 1.9 event system. This is used for a customer referral program, providing an incentive to refer other customers. It is not typically used for resellers, for which agents are more appropriate.
Basic event setup
- Go to Configuration -> Billing -> Billing events and add a new event.
- Give the event a name and set Type to "Package".
- In the "Event Conditions" section in the middle:
- Leave the "Don't run this event again after it has completed successfully" condition.
- Remove the "Customer balance" condition by clicking the red X button and confirming the warning.
- Add a "Customer has a referring customer" condition.
- In the "Event Action" section at the bottom:
- Select the "Credit the referring customer a specific amount" or "Credit the referring customer an amount based on the referred package" action.
- Select or create a credit reason
- Enter the desired amount or percentage.
- To ensure the package is active at the time of the credit, add a "Package status" condition and select "active".
- To ensure the referred customer is active at the time of the credit, add a "Customer status" condition and select "active".
- To limit to new orders, add a "Package is a new order, not a change" condition.
- To limit to once per-customer, add a "Don't run more than once per customer" condition. (Note: this is once per REFERRED customer; a REFERRING customer can still get credit for multiple referrals.)
- To limit to recurring packages (not one-time charges), add a "Package is recurring" condition.
- To limit to (or exclude) certain packages, add a "Package definitions" or "Except package definitions" condition.
Delaying the credit
- To delay the credit until for a certain amount of time from package order, add a "Package age" condition on the setup date.
- To delay the credit until the referred customer has paid a certain amount, add a "Customer total payments (amount)" or "Customer total payments (multiplier of package)" condition.
- To delay the credit until the referred customer has no outstanding balance (optionally, over a particular amount), add a "Customer balance (under)" condition.
- To implement the referral credit in stages (for example, 1/3 after one month, 1/3 after two months, 1/3 after three months), use three separate events with different delays and a portion of the desired credit each.
You may wish to allow your resellers to create and edit their own referral programs. Under Configuration -> Employees -> Employee groups, edit the reseller's group or groups and allow them the "Edit billing events" right (NOT "Edit global billing events"). This allows your resellers to create and edit their own billing events.
If you wish to prevent credits from being issued for existing packages setup before a certain date, you need to do something like
insert into cust_event ( eventpart, tablenum, _date, status, statustext ) select 54, pkgnum, 1253511094, 'done', 'legacy' from cust_pkg where setup < 1249102800 (where 54 is the eventpart, 1253511094 is the date the event is recorded to have run, and 1249102800 [8/1/2009 Central] is the date before which packages should not be credited).