In today’s competitive market the concept of giving loyalty points to customers is getting popular day by day. Although NetSuite doesn’t have a default loyalty points module at the moment, it’s fairly simple to implement this functionality in NetSuite by following the below guidelines:-
Prerequisite:
Creating Two Accounts:
- Loyalty Points Account
- Other Payable Account
Creating Discount Item(s):
- Lists –> Accounting –>Items –> new –> Discount
- Choose an item name of your choice.
- Create a script parameter for the loyalty percentage. This is the percentage at which you will be giving loyalty points
- Create a script parameter for the validity (in months). This is the expiration time of the loyalty points
Design:
The loyalty points system basically has three major flows :-
- Credits/Loyalty Points Earned: This calculation will be done in your User-Event Script.
- Get the total of your transaction
- If you want to exclude tax, then use the value of the field ‘subtotal’, otherwise use ‘total’ field’s value
- Subtract the discount from the total to get the actual amount
- Calculate loyalty points by multiplying the actual amount with the loyalty percentage you had set
- Save the credits earned info in a custom record
- Pass the credits earned journal entry as
- Debit the points in Loyalty account
- Credit the points in the Other Payable account
- Put the credits earned journal entry on your transaction body field.
- Get the total of your transaction
- Credits/Loyalty Points Redemption:
- Check if the customer has loyalty points available for redemption
- Check in custom record
- If loyalty points are available
- Assign the discount item you created in the ‘discountitem’ field of your transaction
- Set the loyalty points available for redemption in the ‘discountrate’ field of your transaction
- Mark the used loyalty points/credits
- Pass the reverse journal entry
- Credit the points redeemed in the Loyalty account
- Debit the points redeemed in the Other payable account
- Put the credits earned journal entry on your transaction body field.
- Check if the customer has loyalty points available for redemption
- Write a schedule script which runs daily to mark the loyalty points/credits that have expired
We are Netsuite Official Partner, specialized in Netsuite Implementation, Customization and all sort of Connectors. Feel free to Contact Us for any query, or to request a quotation.