I am researching an ERP system for a client. It’s a Cafe ++. Looked into Odoo, Tryon and some others. Point of Sale will be the most important feature for this project. ERPNext seems like a good fit, but I can’t find any information on how to integrate the hardware for a Point of Sale client. Main thing would be thermal printer and credit card reader. I am thinking ERPNext would run on a server (in house or in cloud) and just use a ipads browser as a client. Probably with Bluetooth / wifi printer and card reader. Maybe the card reader would have to be connected to the server somehow? As I said we can’t find any info on this, and any pointers would be much appreciated.
Check this link
Thanks, I actually found that earlier. So I should emphasize that our main concern is the card reader, credit card terminal. Any information about that?
I have not found a way to do this yet. Most posts I see on this are using a 3rd party cart program like Shopify and allowing them to take care of the credit card processing. Even then I have not seen a reliable bluetooth card reader for generic installations. I have used the reader from Square and it works well with Square POS but no way to interface that with ERPNext.
As for the thermal printer and cash drawer, I have tried several over the past several weeks. None of them worked well with the iOS devices (iPads, iPhones). iOS kept dropping the bluetooth interface for some reason even though the devices never left a 1 meter radius of the screen. It was even worse with the wifi version of the printers and proved problematic even when the printer was plugged into an ethernet port on the network and the iPad was wireless to the same network. iOS just kept loosing track of the printer several times a day.
I had much better luck with Android OS and some of the network printing apps. I was able to put a thermal printer on the wired network and connect the Android tablet wireless to the same network. Printing was reliable, however I could never get the cash drawer to open on print. This is because all of the drivers for the printers are windows based. The cash drawer control is set and triggered in the windows driver. There are supposedly several linux drivers out there, but the only one I could get to compile was the one for Citizen thermal printers and it still would not open the cash drawer when used on a CUPS server.
You can install the printer as a wired network printer, and then share it out from a windows pc. This allows your other screen device to access the printer shared by the windows PC and the drawer will work. However, this is a clunky configuration at best.
I have also tried using the google cloud print to manage the networked thermal printer. This was an okay solution, but then the cloud print was unreliable and I would have POS receipts stuck in the queue for an hour or more. This will not work in a POS environment where you want to give the customer their receipt and their change from the drawer.
The best luck I have had so far was by using a Windows Surface Pro as a tablet and installing the printer drivers on it directly. I used a USB cable to connect to the printer and it opens the cash drawer properly with no issues. The barcode scanner also works much better with the Surface in tablet mode. I didn’t want to use windows devices as POS terminals but they tend to work every time as opposed to the iPad or the Android options.
I am currently experimenting with Chrome OS devices to see if I can get any of them to work well with a printer and cash drawer. I will probably post my results later as a separate topic.
So far the best solution was Windows devices. This may also be a better fit for your credit card readers, although I haven’t tried this and really do not have time for it in the near future. All of my POS stations are using an external credit card machine and then completing the sale in POS only if the card is accepted and approved. It is a little more time consuming but it works reliably and I will go back to testing other credit card solutions if I find a replacement for the Windows Surface PC’s. They are just too expensive but I have to use them because they work.
As for the models of printer I tested, the best performers were the Citizen CT-S310 and the Hillpow 80mm wide printers. Just about every cash drawer I tried with them worked as well. Epson printers worked but the drivers constantly trying to update themselves slowed everything else down so I got rid of them. Also only 4 out of the 10 cash drawers I tried worked with the Epson printers right out of the box. I didn’t have the patience to try to find alternate settings in the Epson drivers because the drivers were already causing to many problems in Windows. The absolute most configurable driver was the Hillpow printer driver. You could control just about everything from the driver menu.
If you have the time (money, and patience) to find a card reader solution for ERPNext, please share it back here. Many of us would like to know about it.
Thank you for sharing this. It seems like I will have to look at some other solutions. Don’t have a budget to try and fail on this customer, and 99% of the purchases will be by credit card, so manually using a card terminal will be a hard sell. I am curious about how you mention the printer and cash drawer working together, so the actual printing triggers the drawer to open? How? And I am thinking about if you don’t want to talk print the receipt, but need the cash drawer to open. Also, have you not considered other erp/pos solutions after all your issues? I will be sure to share back any findings. Thanks again!
Thermal printers designed for POS systems have a small connector on the back of the printer that looks like a common telephone jack (much lke the one on a fax machine). However, these are NOT for phone systems. A POS cash drawer usually comes with a connector like this and a connecting cable to tie the drawer to the printer. There is a solenoid in the drawer with a spring that “kicks open” the drawer when it receives the signal from the printer.
A long very long time ago, anything that activated the printer would send the 12v or 24v signal to the drawer. I have not seen one of those old style printers in the past 20 years though. So now they are all smart printers and the circuit that sends the signal down to the drawer can be managed through settings in the print driver. For example, below is a screen shot of the settings available in the HILLPOW 80mm POS printer when viewed in Windows:
As you can see in the screenshot, you can manage how the cash drawer works through the printer driver settings. In the case of my printers they all activate the drawer first and then print the receipt. This is one of the reasons I liked the little HILLPOW printer made in China. It is probably the cheapest printer out there that has USB and Ethernet connections built in, but the driver for it is amazing. You can control just about everything. This was not so easy with Epson or Star printers. Citizen printers it worked but they had fewer options that you can edit.
As far as opening the cash drawer without the printer, there is an option for that using a drawer opening device. Here is a link to one:
Note: I have not bothered trying one of these. I only know they exist and how they are supposed to work from 2nd hand information from an associate of mine. The good ones also have a separate power supply to provide the 12 or 24v signal to the drawer (because a 5v USB connector can’t do it on its own).
The only problem seems to be that you have no printer when you use this. Essentially this device becomes the printer. It is made to look like a printer to Windows. When you select this device as your printer, it will open the cash drawer, but then you have lost the ability to send that information to a printer. Unless there was a way to send the same information to 2 printers at the same time, this would not be very useful.
If you were a developer you might be able to find a way to use a Raspberry Pi to be a sort of USB printer pass-through device. It would mean making the RPi think it was supposed to pass anything that came in through one USB port out to all of the rest of the USB ports. With a nifty thing like that you could then use any USB printer you wanted and when you print through the RPi then it could also relay the information to the target printer and the USB drawer interface at the same time. Just a thought, but I haven’t seen anyone ever try anything like that before. Sure would be a nifty thing to have though.
Anyway, I hope that helps you get some of your answers. I was fortunate enough to have a client that was willing to finance the experimenting phase for us to find a suitable POS printing solution. We got the chance to play with a bunch of different printer and cash drawer combinations as well as several different tablet, phone, and PC options for the cashier users. There a lot of people on this forum that will tell you “Oh, this should work just fine. It is well reviewed, etc.” but in my experience you almost always wind up going down some rabbit hole that is supposed to work and really nobody ever tried it before. Unless someone can tell you “Hey, I did exactly this and it works under these conditions”, then I would be very cautious about the advice you take.
I am one that will absolutely try everything I can and test it every possible way I can think of before I ever tell my client that it is an option. I have been in the position of promoting something that “everybody recommends” only to be embarrassed by the failure and having to pay out of my pocket to make an alternate solution. If I promise a client something, then they know it will be delivered one way or another, period. Two decades of experience with fresh written software has taught me to look at everything, but only use what I can prove works.
As for me using ERPNext over some other solution…
I have tried many other solutions. Unless you have access to the source code and are willing to make modifications, you will almost always be caught with missing features. Every system has it’s strengths and has it’s list of “not included” features. You always wind up trying to bolt on 3rd party integrations to other software in order to get some missing feature. The more of them you have to do this way the more possible weak points you introduce into your installation. I have had my fill of those and with ERPNext, I can get almost everything I need for a system. Anything not already in it I can pay a developer to patch, fix, or add to the core system. Then there are no excuses and no finger pointing when some 3rd party interface doesn’t work or breaks when the OS is updated. It saves me a ton of time trying to debug some other proprietary piece of junk software when it stops working.
So, there you go. If you cant afford to actually test something, then find someone that has already done it and willing to share the results.