[Feature] [ERPNext v13] New Point of Sale Beta Testing

That’s what we do at open source platforms :wink:
There is not wrong as long as we can get the things done ourselves if core team is not interested.

We cannot force it on the core if they have some different objectives for the pos for their own customers.

My view for v13 pos is if its not what our clients are ready to take then we customize :slight_smile:
Thats the beauty of open source :heart_eyes:
But as long as things are still under developer I will try my best to get the best possible ui and function in the pos and not just what my client would need in future but what we can do to make it dynamic.
Alot of debate done lets wait for the response from core team.

Our plan was a progressive webapp with local browser db but we stopped our work on it once rushab informed about event streamer function.

1 Like

Alright @nextchamp.saqib the rubber is meeting the road

I just tried to close a PoS period for the cashier. I got the following errors

This means the stock validation is been done during the consolidation process, not at point of sale. We cannot be having this logjams after the sales process is long completed

I can only guess that someone posted a return with a positive qty, I do not know how this was possible, but it is now been flagged at consolidation. I had to delete the affected invoice to be able to move forward.

Also, and more important, I created a batch product with name serielproduct. I received it into the warehouse with batch numbers. I then tried to sell it from the PoS WITHOUT batch number. The PoS accepted it.

More alarmingly, after the consolidation the system did not deduct this transaction from the store ledger, it was no where to be found.

Am assuming the system bounced the transaction during consolidation because of lack of a batch number for a batch product.

In a nutshell, @bkm was right in his fear, stock is NOT been validated at PoS. With this scenario the new PoS is practically unusable in real life …FYA

1 Like

The current POS system even in its somewhat awkward condition, is still capable of immediately updating the inventory. So the 5 reps trying to sell the last item will in fact work well in the customers eyes, because the first one to close the sale will get the product and the remaining customers will be informed that they are out of inventory before the sale can actually close and need the manual process of reversing the sale.

To me that still seems like a big step backwards.

BKM

Sure it does. As soon as it is selected to put in the cart you know if there is sufficient stock to make the sale. If there is not enough inventory the line item gets a red dot to indicated none available. Sales reps also have access to the Item module to check details of the Item as well as the stock levels available in the permitted warehouses based on the mini dashboard in the Item record.

If however there is no way to secure the inventory for a sale, the secondary POS would still be able to complete the sale within POS but possibly have no real inventory to hand to the customer.

The sales reps at the hardware store make extensive use of the Item module to both check availability and find further details about an item.

If a future POS revision allowed a way to accurately know if an item is actually available for sale and then “reserve” the item from inventory while an invoice is being built, then that would be an actual improvement.

BKM

Sorry for the trouble. It was a bug introduced when I locally tried to implement logic for ‘allow negative stock’ from stock settings.
I will request you to please validate this again. Try adding an item with no stock qty in the cart.

I’ll add a validation on qty before submitting a return entry.

Thanks for reporting will definitely fix it.

Thanks. It works just as you proposed from the beginning.

We can have a status in the cart representing the live status of the stock.

Please let me know.

Hi @nextchamp.saqib

Summary of adjustments we agreed on

  1. Ability to click on a product to increase the cart qty
  2. Check your barcode scan process please. Once a barcode is scanned and identified, it should be added into the cart automatically. This is not happening at the moment
  3. System should not allow a batch item to be sold without choosing a batch number
  4. System should not allow sale of item qty beyond the available batch qty in the warehouse.
  5. Validation on negative qty before submitting a return entry
  6. Ability to use credit note or customer available balance as a mode of payment
  7. Add item available qty to each item in the item list
  8. The Pos Invoice does should update the stock ledger, this is required to give real time inventory position
  9. Cashiers need to be able to toggle between uom’s for items with multiple uoms. @fkardame’s app did this quite well
  10. This are the columns we need in the cart … qty/item name/rate/amount. What we have right now is qty/item name/rate

Hope this makes it easier for you to tick off the todos

Best of luck

1 Like

Summary Addendum

  1. Ability to give global discount, this should be rights controlled, the item discounts should also be rights controlled from PoS profile ideally
  2. At checkout page, once a cashier clicks on a payment method, the payment balance should always be displayed. Eg, if the total is $100 and the customer is paying by cash and credit card. If the cashier clicks on cash, the full $100 should be displayed, if the cash component is $20, the cashier types this in. When she then clicks on credit card the balance $80 should be displayed

@nextchamp.saqib

You may want to consider breaking this up into two different releases: one focusing on a new UX, and one focusing on the more fundamental backend changes. Bunching everything together into one release may be too disruptive.

Regarding the new UX: a lot of the discussion here is about different use cases - restaurants, fast-moving grocery stores, slow-moving boutiques, etc. Each use case is going to have different requirements. A potential solution for this is to identify 2 or 3 different views that can meet a majority of use cases and build around that. For example, a restaurant view, a barcode-focused view, and the present default view. The idea would be to share as much as possible, with a few tweaks. And if done in an extendible way, people could start contributing their own views.

Regarding the backend change, it looks like you’re making changes to focus on speed. The thing here is that not everyone is going to be happy regardless of the outcome because people have different priorities. In places that prioritize speed (ex: grocery retail), they will probably be quite happy, and be OK with reconciling issues at the end of the day. For places that prioritize real-time inventory for accounting or regulatory purposes, they will probably be OK with waiting 20 seconds for all accounting to be done in real time. I think if you’re looking for the widest acceptance, you’re probably going to want to build a queueing system for POS transactions. Those who want realtime accounting will just disable the queue and continue as-is. Those who need speed can enable the queue and then reconcile at the end of the day. If architected correctly, you’re only building a queue with queue processing logic, and everything else remains the same.

3 Likes

Already added in our app discount level is assigned in pos profile which restrictions cashier to give any discount above the set limit. Without forgetting that max discount from item master can override this pos profile discount for specific promotional discounts which is higher than the discount set in pos profile.

Also present in the custom app to display balance onn light box after printing the invoice instead of showing it only on payment tab.

Hi @fkardame

I know these are all present in your app, I actually am using some of the functionalities in your app as reference.

But your app will soon become obsolete once event streaming is perfected. Offline PoS will no longer be required. This is why I am taking out the time to ensure that this new online PoS has all the required features.

Regards

Exactly the same for me :slight_smile:

In retail business especially supermarkets there are 3 features that are not part of ERPNext

  1. Weight machine integration. This is an essential tool when selling loose items like fruits, vegetables, nuts etc. The price is printed on the barcode stickers and scanned at cash counter. Am sure all know how the process works. Here’s an example of the machine

https://www.mycomsys.com/weighing_scale.html

Here’s the script by @adam26d shared on the thread

@olamide_shodunke were you able to make it work?

  1. Price display using customer VFD
    Customer displays LPOS-VFD

VFD are either connected via USB or RS232 ports. They can be integral part of a point of sales machine or connected separately as independent unit. Some countries have consumer law which mandates seller in displaying price as the items are scanned at the cash counter. I searched discuss thread for VFD but didn’t come up with any result.

Am sure some member of community has done this. Odoo has done it and I was able to get the script folder. I have uploaded the whole folder here. I have never tried Odoo so dont know if it actually works.

Some of our whiz members may look at the script and find ways of using it in ERPNext.

  1. 2nd screen display. Some POS machines have a smaller non-touch LCD. They usually mirror the POS display. Some software display the item, qty price etc. Maybe run advertisement as header or footer.

It is always either VFD or LED Display that is used. On priority basis I would work on VFD before LED.

Along with enhancement of POS lets look at how these 3 features can also be accommodated in the core to make it rock solid.

1 Like

Hi @Muzzy

  1. Yes I was able to make @adam26d’s script work up to v11. But this is something that should be integrated and could easily be integrated. The code needs cleaning up though.

  2. So far VFD price display has been a dead end, no one has been able to make it work

  3. 2nd Screen display as a mirror of the PoS display is not an issue, you simply mirror the windows screen. Where it could be interesting is the ability to show adverts by the side as shown by you above.

While we have @nextchamp.saqib’s attention, these are all issues that should be discussed and addressed to make Retail a more viable proposition on ERPNext.

1 Like

Hi
I am getting a bit depressed of all these discussions.
I have been using ErpNext (Frappe Cloud) even before a POS existed.
I was very glad with the very first POS introduced years ago …2014??2015.

Discussions on the POS have always been rather emotional…designs have been made…as well as many suggestions to improve functionality.
4 or 5 years ago the community raised a few 1000 $ and Rushabh re-coded the POS. I contributed and made several suggestions…

One of these old suggestions I communicated (again) to Mambai. That is that the POS should know whether the input is from a human or a barcode scanner and change its behavior accordingly. Relatively simple if the system monitors the input speed. Nobody can type characters with the speed of a scanner.
At present…mind I use the offline POS because the online has too many flaws if the cursor is not in entry box nothing will happen. Also I can not use the codes as a filter. I have codes dami1 upto dami30. If I want to select dami10…19. It is not possiible because if I type dami1 it is immediately put in chart. Better to hit the reurn to select dami1 en if not the dam1,dami11…19 can be mouse selected by clicking the ITem.

I have several other wishes…I will write them down soon.

BUT…the key of the matter is thet no POS with many hard-coded settings will please every one.
I believe the only way out of this is investing in a POS that is highly user-configurable.

The user may want to configure the lay-out of the POS screen…eg the sizes of the items. Numer of rows, max numer of columns etc etc
The information shown on “mouse hover” (items code, item name, item desription, price , avail quantity and so on and so on)
Accept negative stock for simple returns
Whether the user wants the intelligence I have suggested above ,or not…
Wether the POS is used on a small screen device (mobile) and should be able to use this device as scanner
Whether ledgers will be immediately updated (a bit slow) or and the end of the day (no realtime stock info)
and so on , etc, and so on Etcetera

I do not believe it is very difficult to make a list of the many wishes…look at the old threads and designs and look at some very modern POS.

And than, I am not a coder so I cannot judge the effort and complexity, a configuration screen should be able to fine-tune the looks and functionality of the POS covering say 90% of the users wish-list.
Minimum hard-coded settings and maximum user configuration

I believe, if not, we continue with half the user community screaming that the POS should be improved.

Code have used da%19, it would filter all da with 19.

Rightly said.

I hope this doesn’t happen.

I would like to know what is the current scope of the pos and what were the initiate objectives set by the core team, also how much time, resource and finance was budgeted for pos.

As I see only @nextchamp.saqib is replying to this discussion, I request someone from the senior management to clear things out, so if there is a need for community finance or resources then we all can contribute.

I am looking for clear information from the senior management.

Hi, thnx for the % trick…used in filters but never realized i could use it in the POS search field thnx

Just what my team had suggested. I should have broken it up into two parts. I have learned from this though.:sweat_smile:

I just discussed this yesterday. I plan to but I’ll only work on this after all the deal breaking problem gets solved. I am keeping this as one of the last change since it would require a lot of moving around and configuring code. I am considering to implement this as an update rather than having it from the get go.

This was also suggested by my team, specifically allowing user to choose whether an intermediate invoice gets generated on each transaction or the normal sales invoice.
However I’ll make sure the end of the day consolidation method won’t have the stock inventory issue I mean user will definitely be able to see how much stock is left from the POS screen.

@felix Thanks a lot.:smiley:

1 Like

I’ll put up a to-do list of all the fixables which I’ll be working upon.

Returns against a credit note is a major problem since it hasn’t been implemented in ERPNext itself. Forget POS, doing the same in ERPNext needs the user to reconcile the invoice with other invoice through payment reconciliation or journal entry.

Please provide me some of the scenarios of returns. Do we give refund the money? Is it ever refunded in cash? Are invoices for return and replacement the same? Can we make 2 transactions one for return and another for replacement?

You have the case where the customer, only wants to return some items of the invoice or the whole purchase.

Whatever the case is, It will always depends on business politics:

  1. Some business return the money; cash or CC.

  2. Some other return the money as a positive balance for the customer in the system, (maybe could be related to loyalty where we translate the credit amount into the amount of points required to make that purchase again).

  3. Some other give you a Credit note based on the previous purchase.

Some thoughts I am very happy to see you interacting with us all, I come here like watching a TV series, very exciting of the new changes!