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

Hello,

Good job. The POS badly needed a redesign. Here are my suggestions and some bugs i could see

I agree on this one, it is good to avoid transitions in the same screen at least for a POS. Keep the UI elements in place and show the contents as empty.

The item details space is too much when compared to item selector when there are items added to the cart. We need atleast 2-3 columns of items.

It is good to have x button to the end of items like you have for customer for removing items. It will optimize one click.

selected Item row should have some kind of highlight. Guess someone brought this point already.

I agree done->checkout->complete order can be optimized with earlier Pay->complete order.
The pop up screen for payment was much easier with all kind of MOP options listed and amounts visible for each MOP. In the new payment screen, MOP amounts get hidden on selection of other MOP. I could see the bug, where the paid amount and change amounts do not get updated when MOP amount is deleted or the cart is modified. Needs thorough testing.

1 Like

I believe the mergin of Invoices should be optional, countries with eletronical invoicing, dont will be able to use the POS, since every invoice, need they own unique record given by gov laws, even it’s an mistake, or it’s cancelled, in entire south america, for example, you need to send the invoices for the gov, at the moment it’s issued.

1 Like

These invoices still exist individually as Pos Invoices.

I think

?! So why merging? Still making no sense, at least to me where electronic invoicing is a reality.

The notes state that Submitting the closing entry will create multiple sales invoices based on customer.

The “Merging” is just to create the accounting entry. Each sale will still have an individual invoice.

@felix, ok, if it’s only that, makes a bit of sense, a bit

The new interface looks nice. i want to mention few points might be helpful for the final product.

  • Shortcuts : More shortcuts are required to operated the pos for fast working. Ability to make custom shortcuts by user will be great.

  • Ability make a credit transaction with regular customer via pos.

  • quick and easy Batch selection for items having multiple batches .

  • POS layout customization would be nice to some extent.

  • Quick and easy return management from pos.

  • Tabular cart system or save a cart to manage multiple customers at same time.

Looking forward

I understand that POS needs to be redone. But I strongly feel it should be done with complete understanding of a till staff. The biggest issue I face with developers is that they make stuff with their own understanding of a process. Rarely do they take real users understanding. Same issue with business owners. Many don’t even talk to their staff to know what problems they are facing.

I am sorry but this new POS is same wine in new bottle for me. Too technical and not going to stand up to rigorous test of production environment.

Has anyone tried it on mobile? In short time businesses will move away from expensive pos machine to save on cost. This layout will not work on mobile devices. More businesses will provide mobile sales as people will keep away from stores due to situation we face today.

@nextchamp.saqib you are doing a fine job as per your knowledge. Before you venture further observe cash counter staff at any leading supermarket. Speak to them to know how they tackle customers and system. Test multiple brands of POS to know how they provide solutions. It’s all part of learning which will help build quality product. And I aver that you can.

3 Likes

+1 for this

This is great work. I like the new features and the interface.

There’s a bug that’s in the current v12 POS, reported here: Users can edit prices on the POS even if Allow user to edit Rate is not ticked - v12.5.2 (version-12) · Issue #20889 · frappe/erpnext · GitHub

Ok, so this still really does not make any sense. Back during the revamping of POS for v10 we all agreed that the possibility of losing transactions was problematic when the system lost connection and tried to buffer the sales to sync later.

I do not really see this to be any different. In fact I see it as a worse outcome. The immediate updating of stock is critical to the proper functioning of a retail business. When there are gaps between when the transaction is made and when it is finally entered into the erpnext ledgers (stock, sales. etc.) then you have left open the possibility of fraud to be done by cashiers or teams of cashiers and outsiders.

Even if you for some reason decided the fraud problem was nothing to worry about, you still have the problem of making very unsatisfied customers when you do NOT immediately update sales.

Take for instance one of my current clients. They have 5 sales persons roaming the showroom all the time carrying a tablet and making sales with customers in real time.

If you were attempting to use the POS described here you would have a dangerous condition where a particular item there are only 4 in stock. Lets for example say that they are lawn mowers. Based on the display model all 5 sales reps attempt to sell a lawn mower. They each process the sale on their tablet and walk the client over to the pickup window to get their big box containing the lawn mower out of the back stock room and hauled to their car.

If all 5 sales reps sold a lawn mower the 5th person going to the pickup window to get their mower would have a paid ticket for the item and there would be none left for him to receive. Now you have an unhappy customer and a sales rep saddled with having to manually process the reversal of the sale. This takes them away from their valuable time selling direct to the customers.

Why did this occur? Simple.

If the ledgers do not get updated until the sales rep closes out for the day, then there was no way for them to know that there were none left in inventory. This was exactly the whole reason that back in v10 we pushed to make the POS faster and still do the immediate updates to inventory. Even if you somehow attempt to do a stock check before the sale in the new system you do not in fact reserve the item and it can be sold many times over.

To me this make any POS that waits until the end of the day to update the ledgers a complete waste of time and a loss to customer loyalty once they have been burned a few times with a purchase they cannot take home.

The hardware store I described above is a real client using ERPNext and I have several more with similar sales models including a cell phone store, a laptop computer store, and an agricultural feed store.

Not doing the inventory update in real time is a huge step backwards.

When the world emerges from this state of pandemic the last thing they will want to do is waste their time with poor transactions. They are already going to be scared of to much time spent interacting with anyone. The customer will be looking to minimize their contact time with sales reps and other customers. The retailers will not put up with it because the customers will not put up with it.

I am not even going to waste my time here telling you how this opens you up for fraud. This just does not seem to be well thought out regardless of how pretty it may be on the screen.

Just my opinion…

BKM

Thanks for your very critical opinion.

I will say it again that, when a person adds an item to the cart it gets verified in real-time if the stock is available. Also in your case if one of the 5 person did manage sell the last piece of item the other 4 invoices won’t be submitted.

I understand that POS systems should have real time stock validation as it’s first priority (which this version definitely has) but if there are 5 people trying sell the one last remaining item then I don’t think any POS system will make your customer happy.

Also I do accept that this is not the best POS system out there and maybe it won’t be. There are a lot of thing to fix and optimise which I am having discussion and working on. I’ll definitely “try” my best to respond to all the problem discussed here before merging it to v13. I am very grateful for all the feedback, it did gave me a new perspective which the the whole purpose of this discussion.

@nextchamp.saqib

Could you clarify again the reasoning behind the interim pos invoice option you are proposing?

And in the case of inventory availability, how will this be validated? If cashier 1 has sold the last item, and his PoS for the day has not been consolidated, how will cashier 2’s till be able to validate that the last item has been sold?

Am not sure this is true

Intermediate pos invoice was to separate out the ledger entry posting. We wanted to make pos transaction faster and the only thing that was slowing down the transactions was ledger entries posting.

So making an intermediate invoice which gets saved after each transaction still maintains the qty sold (in database).

Those intermediate invoice’s sum of quantity gets substracted from the recent stock entry’s (this is created when an item is added to stock) actual quantity to give the correct available stock.

This will only be inconsistent if qty available is 1 and two pos transactions are processed at the same time. But even if this were to be the case one of those 2 invoice will throw error.

@bkm

This makes sense and I do not see any negatives here, what do you think?

Very well Explained… In this situation erpnext will have to maintain 2 stock ledgers instead of 1.

  1. Erpnext actual stock ledger.
  2. Pos stock ledger

Looks like they have alot of time to do some workaround. But if it can be achieved then its a good way too. As currently we are doing the same in offline pos to instantly update the stock in js of the pos screen for the cashier to know the exact quantity in stock instead of pos syncing the master to get the updated stock.

Yes this is possible if workarounds are used. Like the one we’re using. Causing pos batch quality not found errors :frowning:

So you’re waiting for the sales person to convince the customer to buy the item just to tell the customer that he cannot buy it while trying to submit?
I understand your way of stopping the overselling but you need to look at the practical use case as I have been telling since the beginning.
Taking the same use case of @bkm if one sales rep took 30mins to convince a customer to buy this lawn mower and at the time of submitting the invoice he comes to know that there is no stock?
If you were that customer who wasted his time just to make a decision to buy the item just to know that its not in stock anymore?
We have faced this too, that is the reason we customized the stock calculation of offline pos ourselves.

Only if the stock changes to 0 as soon as the first invoice it raised other wise customer will be unhappy.
To solve this the only way i can think of is maintaining stock list exactly the same way you maintain pos invoices until the day is closed.

You mean accounting or stock ledger entry?

Yes this is what I am saying about maintain stock separate intermediate ledger so it can be updated in pos view as soon as the item is sold.

There are other ways to solve this issue. Also this is alot of workaround to solve retail pos issues.

Instead I was expecting a robust proposal from Erpnext core team.

I agree with holding accounting transaction till day closing. Its a good way to process accounting entries as it spams the gl with cash and card payment on invoice bases.
@nextchamp.saqib can you explain more details about accounting entry that will be passed during day closing?
I propose to just pass 1 entry
Cash debit
Card debit
Sales credit.
If you will pass entries for individual invoice then your just solve one issue while you can solve both the issue of pos being slow and accountants concern of having too many cash card entries in gl.

@rmehta will you be looking into this?
I would propose that we make a team who have had experience with retail pos and work on it together?
@olamide_shodunke @bkm @max_morais_dmm
I see that were doing the same work which was discussed during v10 but again I see its not going as per practical use case scenarios.

I am not trying to force my ideas, just trying to share my experience in handling pos transaction from cashiers, accounts and stock managers point of view. We have tried our best to make custom changes in our app but its nearly impossible for us to do all the right things all by ourselves and update it with updates to the core. I had also proposed to push changes to the core but erpnext is not interested in offline pos anymore so its fine as long as event streaming will be available.

If needed I can document the core issues with explanation, example and start a new thread for pos developement?

Good analysis @fkardame

I will seriously recommend that you start testing event streaming immediately. This is the future for Retail as far as ERPNext is concerned.

I am a country representative of one of the top “tier 2” PoS solutions, we have retailers with well over 100 stores running this PoS and the concept of event streaming is basically what they use in data exchange between branches and HQ.

I like the look and feel of the new PoS design. I have never used online pos in a production environment because of internet network issues, but with event streaming this is the way to go as it will solve a lot of issues with offline PoS (security, integrity of transactions etc)

If we can fine tune this new PoS design alongside Event streaming, it is game over.

So let us continue the reviews and analysis, with Event Streaming offline PoS is redundant

1 Like

I will try from next week onwards maybe.

Also just to inform you the open source situation, we may put alot of our hours to get things documented but we should not expect that everything will be accepted by the core team.

Experienced open source contributor. :wink:

1 Like

It’s hard to go over pratical use cases scenarions, because, an use case scenario does not fit for all.

An simple comparization is the IVA Tax, in Brazil it’s Called ICMS and the Computation is

Tax Rate x Tax Rate x Amount = Total

What imply that (25% x 25%) x 100 = 131,25 <= Don’t ask me why but to me, 31.25 = 25% of ICMS for a good of 100 BRL.

The fact that we cannot use the POS System offered by ERPNext in real production, is just one of many little features that don’t fit for all.

I’m telling it’s wrong?, No!, if it works for the active base of customers that Frappe Team have currently, that’s fine for they.

My concern, was that in the principle the idea of the fundation was for we be able to support better the core product for other markets also, but have been a long time, we didn’t have heard about the foundation, and release after release, new features are comming, that may work fo the Frappe Team customers, but may not fit for the community.

Also, even give things back to the community become harder from time to time, so, the unique option we do have, is open discussions here, for they fall on the dark, while we keep trying convincing our customers, “for purchase a product”, that is going to be out of stock, when we sync eveything!

2 Likes