Designing Loyalty Points System in NetSuite

Designing Loyalty Points System in NetSuite

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:

  1. Loyalty Points Account
  2. Other Payable Account

Creating Discount Item(s):

  1. Lists –> Accounting –>Items –> new –> Discount
    1. Choose an item name of your choice.
  2. Create a script parameter for the loyalty percentage. This is the percentage at which you will be giving loyalty points
  3. 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 :-

  1. Credits/Loyalty Points Earned: This calculation will be done in your User-Event Script.
    1. Get the total of your transaction
      1. If you want to exclude tax, then use the value of the field ‘subtotal’, otherwise use ‘total’ field’s value
    2. Subtract the discount from the total to get the actual amount
    3. Calculate loyalty points by multiplying the actual amount with the loyalty percentage you had set
    4. Save the credits earned info in a custom record
    5. Pass the credits earned journal entry as
      1. Debit the points in Loyalty account
      2. Credit the points in the Other Payable account
    6. Put the credits earned journal entry on your transaction body field.
  2. Credits/Loyalty Points Redemption: 
    1. Check if the customer has loyalty points available for redemption
      1. Check in custom record
    2. If loyalty points are available
      1. Assign the discount item you created in the ‘discountitem’ field of your transaction
    3. Set the loyalty points available for redemption in the ‘discountrate’ field of your transaction
    4. Mark the used loyalty points/credits
    5. Pass the reverse journal entry
      1. Credit the points redeemed in the Loyalty account
      2. Debit the points redeemed in the Other payable account
    6. Put the credits earned journal entry on your transaction body field.
  3. 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. 

It's only fair to share...Tweet about this on TwitterShare on LinkedInShare on Google+Share on Facebook
Work Center Calendars
Top SEO KPIs to Track for Ecommerce Success

Shuja Zaka Khan

Leave a Reply

Your email address will not be published.