Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Loyalty Program #12631

Merged
merged 10 commits into from Jul 6, 2018
Merged

Loyalty Program #12631

merged 10 commits into from Jul 6, 2018

Conversation

manassolanki
Copy link
Contributor

@manassolanki manassolanki commented Jan 24, 2018

Note:

  • There can be multiple Loyalty Programs.
  • All the related customers can be auto opt-in for the program or can also be done manually from the customer doctype.
  • The collection factor can be flat or tiered on the basis of the total spent done by the customer.
  • All the loyalty points will be stored in the simple ledger after booking the income (via sales invoice only).
  • All the loyalty points earned has expiry date calculated as per the loyalty program.
  • Loyalty points will be deleted after canceling the invoice.
  • Redemption will be done via the Coupon/Gift Card (WIP) (Depends on [ADD]shopping_cart_coupon_code: feature of applying price rule on eco… #12559)

Loyalty Program

loyalty program

Loyalty Point Entry/Ledger

image

Loyalty Point in Customer record

image

Fixes #12322
Fixes #12790

@kossanah
Copy link

Fantastic contribution, I have been looking out for this function.
Please kindly consider:
Message to inform customers about their rewards balance via email, text message, online customer portal. The customer Notifications can be configured as editable Templates (Email or SMS)on setting.

@olamide2
Copy link

This is long awaited. The request for customer notification is important

@olamide2
Copy link

Loyalty points should be a "payment type"

On the payment page the total available points should be displayed and the cashier should have the option to use as much of this as the customer wants as tender. The balance will then be taking from the other tender methods

@nabinhait nabinhait self-assigned this Jan 30, 2018
@rmehta
Copy link
Member

rmehta commented Jan 31, 2018

"Loyalty Program" seems archaic. Use "Loyalty Plan" ?

@olamide2
Copy link

olamide2 commented Feb 3, 2018

Or "Customer Reward Program"

@olamide2
Copy link

olamide2 commented Feb 8, 2018

Hello all

Do we have an expected time line for this? anything needed to push it along?

Regards

@manassolanki
Copy link
Contributor Author

hi @olamide2
This will be completed and merged in the develop in the coming week. However, it will be in master only in the next version

@olamide2
Copy link

We also need to consider the accounting entries for the loyalty transactions.

Accounting standard dictates that value of the loyalty earned during a transaction should be treated as a deferred income which will be released when the loyalty is redeemed or expires

The following are my proposed entries during a transaction when loyalty is earned or redeemed or both

  • Credit Sales Account (With Total value of sales)
  • Debit Cash Account (With cash actually received, if any)
  • Debit Credit Card Account (With value of credit card tender actually received, if any)
  • Debit Sales Account (With Value of Loyalty earned if any) (This is to defer the value of loyalty)
  • Credit Loyalty Revenue Deferred Account (With Value of Loyalty earned if any) (This is to defer loyalty value)
  • Debit Loyalty Expense Account (With Loyalty redeemed if any)
  • Credit Sales Account (With value of loyalty redeemed if any) (To release loyalty deferred on redemption)
  • Debit Loyalty Revenue defered account (With value of Loyalty redeemed if any) (To release loyalty deferred on redemption)

@rmehta
Copy link
Member

rmehta commented Feb 12, 2018

@manassolanki closing this for now.

@rmehta rmehta closed this Feb 12, 2018
@olamide2
Copy link

olamide2 commented Feb 12, 2018 via email

@kossanah
Copy link

@rmehta Pls we really need this feature like yesterday. Is there any hope for us waiting for this feature to be released?

@nabinhait
Copy link
Member

@kossanah @olamide2 Sure, it has been closed temporarily and under active development. we have given some feedback to @manassolanki , he will reopen the PR after implementing those.

@olamide2
Copy link

Glad to see this reopened

Important note..we need this to work with PoS module (both offline and on line versions)

Regards

@nabinhait nabinhait closed this Mar 28, 2018
@olamide2
Copy link

olamide2 commented Mar 28, 2018 via email

@nabinhait
Copy link
Member

It is still under active development, @manassolanki will soon reopen after finishing the feature.

@manassolanki manassolanki changed the title First Cut for the Loyalty Program Loyalty Program Apr 2, 2018
@manassolanki manassolanki reopened this Apr 2, 2018
@Olawale1
Copy link

I think a feature that is so important, required, and of interest to lots of ERPNext users should be given some priority

It would really be nice to have some info on the progress (or lack thereof) of this PR and anything we can do to assist in moving things along

Cheers

@manassolanki
Copy link
Contributor Author

Hi @olamide2 and @Olawale1
We assure you that Loyalty Points will be there in the V11. If you want to test you can test after pulling this branch into your local setup or if you are using the master then you are already getting this in v11 release.

@olamide2
Copy link

Awesome!
Can I ask for more? does it cover offline yet?

@kossanah
Copy link

@manassolanki
Thanks for the update, I am happy to hear the feature will be include in V11. Well done

@OnlyC
Copy link

OnlyC commented May 30, 2018

I'm happy, too. But is there's eta for v11 release?
Also can I have information about below features? Which is already available? Which will be included in next release? and which I should custom by my self for now?
Thank you!

@nabinhait
Copy link
Member

@manassolanki Travis is failing. Also remove the conflicts.

@manassolanki manassolanki force-pushed the loyalty-point branch 3 times, most recently from 71ae956 to 278d92c Compare July 1, 2018 21:12
@olamide2
Copy link

olamide2 commented Jul 4, 2018

Can we merge this already!!

lol

@nabinhait nabinhait merged commit da486ee into frappe:develop Jul 6, 2018
@drhubehs
Copy link

Hi- how can I add loyalty to my erpnext installation on my server?

@drhubehs
Copy link

Hi- how can I add loyalty to my erpnext installation on my server? We want to have a loyalty program for our customers who walk into a store location and purchase at a pos. this can also extend to the ecommerce purchases

@Olawale1
Copy link

Hi @drhubehs

This is a new feature which hasn't been released in the live version yet. It will be released in version 11. To test it now, you'll have to install the 'develop' branch on your server

Since you intend using this in a live environment, I'd advise you wait for version 11 to be released and then update your instance

If you would like to discuss this further, you can do that in the forum @ https://discuss.erpnext.com
This platform is mainly for discussions relating directly to development

Cheers! :)

@olamide2
Copy link

olamide2 commented Jul 23, 2018

Hi @manassolanki

Thanks for the efforts on this.

Some issues have been raised on the loyalty points for example check out #14930.

Could you also look at making the loyalty available offline based on the suggestions above as quoted below

**With regards to the loophole in using loyalty offline, I assume the loophole refers to the ability for the customer to use more points than they are entitled to while the system is offline and throwing the points into negative.

In my opinion we should give the retailer the option to assume this risk by using the loyalty module in the offline mode. Some retailers will assume that risk gladly.

I will recommend that you put this as an option that the business can activate if they want to assume the risk stated above.

What do you think ?**

@OnlyC
Copy link

OnlyC commented Jul 29, 2018

@olamide2 I'm testing and notice the same issue as your. I've figured out that the function to calculate tier_name in erpnext\accounts\doctype\loyalty_program\loyalty_program.py, line 60 should be:
tier_spent_level = sorted([...... reverse=False) ...... if i == 0 or lp_details.total_spent >= d.min_spent: .....

@OnlyC
Copy link

OnlyC commented Aug 3, 2018

@manassolanki I found another errors in the file: loyalty_point_entry.py

function: get_loyalty_point_entries
if not expiry_date:
date = today()

should be:
if not expiry_date:
expiry_date = today()

Sorry I don't know how to PR.

@olamide2
Copy link

olamide2 commented Aug 3, 2018

@manassolanki

Can you please help update the two errors identified above by @OnlyC ?

Regards

@Muzzy73
Copy link

Muzzy73 commented Jun 15, 2019

Hi, has anyone been able to migrate loyalty points from previous system into ERPNext without making an Invoice. Businesses have issued Loyalty points on their previous system and these need to be available in production ERPNext. We have tried many ways but not been able to make loyalty points opening.

Any help would be much appreciated.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Loyalty Program Shopping Cart Enhancements
9 participants