Welcome, Rob! I’ll offer my biased opinion.
Web-based POS systems have some challenges communicating outside the browser, both to the backend (if offline, updating inventory, etc.) and with hardware. I think the question of whether ERPNext would be a better fit will boil down to:
- If all locations have reliable internet (though Event Streaming may be a possible workaround)
- What terminals you’re using
- What hardware you need to interact with
- And obviously, what additional features are needed like loyalty, discounts, etc.
ERPNext: Standard POS and POS Awesome
Let’s first talk about ERPNext’s “built-in” POS. Before version 13, each sale was basically handled by a sales invoice, so each was submitted separately to the backend. There were issues with that because it would cause the browser to freeze up and things if I recall correctly. In version 13, Frappe refactored the POS to create POS Invoices. Basically, the POS invoices are held in the browser’s cache until the end of the POS session and then sent to ERPNext’s backend. The backend then creates sales invoices based off of the POS invoices. If there were multiple sales to the same customer, then those POS invoices are all combined and become one sales invoice.
If you want to understand more on that, you can read from this post down:
There’s some discussion on this not working correctly, but I think, despite the many posts in this thread, it’s actually a simple bug. As in, inventory levels are updated on the backend with the creation of each POS invoice, but it’s not affecting available quantity. I’ve had this on the back burner to report a bug on Github for months but haven’t taken the time to recreate it. Umair lays out how it’s supposed to work in the post above, but something isn’t making it’s way to available quantity.
If the built-in/standard POS checks all the boxes for needed features, I think the above can be overcome.
Because of this issue and desire for other features not in the standard POS, an accountant-turned-developer created another POS system that works with ERPNext based off of features needed by his clients. It’s actively maintained and has been widely adopted, POS Awesome. It has more features than the standard POS and behaves differently. It’s my understanding that each invoice is submitted separately as a sales invoice.
That behavior may or may not be a big deal to you, but I’ve seen someone raise it as an issue in a country that has electronic invoicing and needs to generate an e-invoice for each transaction, which I’m not sure is a possibility with how the standard POS works.
The standard POS and POS Awesome only work online. I think the last I used Odoo, as long as you had a connection when you first loaded, you could still transact. That isn’t the case with ERPNext.
Hardware
Both options above will work with a barcode scanner (I do think POS Awesome comes with more settings there) just like Odoo’s POS will work with a scanner without the iot Box. However, for other hardware, there’s no built-in support for a “box” like Odoo has.
Printing is possible, but it requires a driver for that printer to be installed. Instead of natively communicating via ESC/POS to a printer and cash drawer, the cash drawer’s settings will be controlled by the driver, and printing will be done how the browser defaults; there will be a pop-up dialog to select the printer, and it will be rendered as a PDF instead of in ESC/POS. More on that here:
If your terminals are tablets, the driver issue becomes tricky. I think if you search the forums, people are using various solutions to print, but it likely requires some sort of 3rd party driver for Android/iOS. If you need other hardware, there’s more on that here:
You may notice some custom apps in some of these threads, but I don’t think there’s anything that’s actively maintained. And back to terminals, if you’re using tablets, I’m not aware of anything that allows them to communicate with hardware. As stated in one of those threads, the best setup for a POS terminal is probably Windows. If your machines are already Windows, hardware is less of an issue.
I did notice an app that is being developed now called Beam that may solve some hardware woes, but I don’t really know anything about it.
I think most folks using the POS use a standalone reader for credit cards. More talk on that here:
There’s also an app on Frappe Cloud that integrates Stripe (and Stripe Terminal readers) if you’re in a region where Stripe Terminal has rolled out.
Other Notes
ERPNext is a completely different beast that Odoo. I don’t think you’ll find the conflicts that breaks things all over the place in ERPNext. It’s clean on the frontend and the backend, which will make your time to implementation shorter and less painful. And if you have to customize. it will probably be a cheaper and easier affair than with Odoo.
I hope you found some of the pain points and information above helpful. I may have gotten some of the broad strokes wrong, but hopefully if I did someone will jump in and correct it.