Having 2 tills connected to 1 Database. Printing Issue

I have set up 2 tills with 3 printers. 2 receipt printers and one kitchen printer.

I have the terminals set as ‘Till 1’ and terminal 2 as ‘Till 2’. Initially I had both terminals to printer from ‘Ticket printer’ and then for each till I had it assign the printer to the one installed for that system. So Till 2 has receipt POS2 and till 1, ReceiptPOS1. On till 1, it prints bill fine for receipt and kitchen. However when I go to till 2, when you go to print bill, it prints kitchen fine but you get an error says “printer name invalid”. I check the assigned receipt printer on till 2 and it shows it’s assigned to receipt POS1.

Till 2 is connected to server on Till 1. And message center is working also.

When I assign ticket printer to receiptPOS2. Suddenly till 1 doesn’t print.

So I tried cloning ticket printer and renaming them 1 and 2. Then under terminal settings changed terminal 2 to ticket printer 2. It made no difference.

I’ll try post some screen shots later when I’m onsite. But anyone have a clue where I may have gone wrong?? Or what rules I should check or create to assign the receipt printer to their individual terminals?

I’m just curious. When you set different terminals, isn’t supposed to save the settings specifically for that terminal within the database?

EDIT:
Some screenshots.


Print Jobs

The Issue

Terminal 2 Printers installed

Terminal 2 Printer 1 settings

Terminal 2 Ticket Printer 2 settings

Terminal 2 Settings

UPDATE: This is so weird.

I just went to reset Terminal back to Ticket Printer 1. And suddenly it started working again???

So basically, I went to Till 2 under “terminal settings” Changed Printer back to Ticket Printer 1.
Went to print jobs, removed the cloned print jobs for Ticket Printer 2,

In Terminal 2 I assigned Printer for ticket printer 1 to ReceiptPOS2(Terminal 2 printer)

Saved, tested, Terminal 2 started printing.

Went back to Terminal 1, tested “Print Bill”
and it started printing from terminal 1…

What on earth?

I originally had it like this and it wasn’t working?!!

I’ve no idea why it’s working now and not before.

Gonna do some more testing.

UPDATE: Ok After a few tests, The issue is still there.

What occurs now.

When you assign the printer for ticket printer 1 on both tills. They work fine.

However if you decide to close sambapos, and open it back up, suddenly it stops printing from that till you just restarted. Then you re assign the printer and it starts working again. It prints all tickets but it still comes up with “Printer name is invalid”

Any thoughts?

UPDATE: Still no luck with some changes. I tried to set Terminal 2 to Print transactions to Printer 2 but that didn’t seem to do much.

Don’t the settings save uniquely if a terminal is set up, but linked to same database??

Is there any where to achieve each individual terminal to print specifically to the printer assigned to Till?

Would I have to create seperate Print jobs, templates and printers to achieve this? Or would I have to setup actions and rules to separate them?

Firstly what type of printers are they - USB or Ethernet?

I think your printer problem is more related to windows printer sharing than SambaPOS, however you have likely been trying so many things in SambaPOS you may have now accidentally changed something.

The printers are connected Via ethernet.

They can be found on both Tills, and they can be access from both tills. So the printers are shared, and they can be found on samba printer selection.

I’ve got the database on Till one, and then I’ve opened specific firewall port to allow Till 2 to access the database through ethernet port.

I’ve also port forwarded the message server port number through the firewall to allow live updates from both tills.

I’ve set the Terminal Names as “Till 1”(Main server till) and “Till 2” For second till.

I’ve got Terminal Till 1 and Till 2 transaction Printer set to Ticket Printer 1.

Ticket Printer 1 is set to ReceiptPOS1 which is located on Till 1.

ReceiptPOS2 is located on Till 2.
But I’ve shared it so Till 1 can see it too.

As of now, on Till 1, I’ve set Ticket printer to ReceiptPOS 1, and I had to create another Ticket Printer, and from Till 1, I’ve set Ticket Printer 2 to ReceiptPOS2 via network.

I’ve done Test Prints for both printers on Till 1 and they print fine.

I’m just trying to assign Terminal 2 to Print from ReceiptPOS 2 instead of ReceiptPOS1.

If I change the printer on Till 2 to ReceiptPOS2, Till 2 will print, Till 1 will show Invalid Printer name.

Both printers have attached cash draws to them.

Ok so follow this first.

If all printers are Ethernet, you should not be sharing them. You should install the 3 printers on each system and have them connect directly to the printer (by IP address or hostname). It is always recommended not to use printer sharing as it causes issues that are difficult to debug, however of course if one of the printers were USB then you would not have any choice.

Make sure printers are named in SambaPOS identically on every terminal. So if you install like I suggest, then you just have your 3 printers - Receipt POS1, Receipt POS2, Kitchen Printer.

However if some were shared instead (ONLY in case of USB printers - see above), then if the computer name is Till1 and Till2, then you need to explicitly name using the computer name for each shared printer, e.g. \\Till1\ReceiptPOS1 and \\Till2\ReceiptPOS2 on every terminal, including the same one. This gives you consistency of setup and means the printers will work regardless of which terminal tries to use them.

These are the steps I take on multi terminal setups and never have any problems, even if I am using USB printers.

1 Like

Ok. To install the printers in each terminal via thereto is easy to do.

Just to clarify then. If Install receiptPOS1 on both terminals but have different IP addresses. Then have till 2 and till 1 assign receiptPOS1, to ticket printer. On till 2 it still has the same printer name so it shouldn’t have a problem finding the printer name and then just forward the print to that printer which is installed on that machine. Correct? Would that work?

Your printers have fixed IP addresses. If you need to confirm the IP address, turn off printer then turn on while holding the feed button and you should get a test print showing the IP address.

So when you install the printer on each terminal, you would enter the IP address of the printer. Different printers have different ways of doing this, some have a tool, some do it for you as part of the installation and some you have to configure the port yourself in printer properties. I don’t know how for your particular model, but once you installed via ethernet you will see it in control panel (devices & printers) showing the port as the IP address

So in my case my printer has IP 192.168.0.20. On every system I install that printer, it’s always going to be the same IP address.

No, not correct. On Till 1 you install printer ReceiptPOS1 connected via ethernet to IP address. On Till 2, you also install printer ReceiptPOS1 connected via ethernet to IP address (i.e. the same printer). There is no “forwarding” going on - each system prints directly to the printer via the network. You repeat same for the other 2 printers.

Does that make sense?

1 Like

Yep yep,

Thanks mark. That’s pretty much what I did, and it worked flawlessly. By forwarding I simply meant that even though it has the same printer name, but different address, on each till, having the same printer name and different IP address, it will print from the IP address allocated to the printer on the specified till.

So what I mean is , example, till 2 and 1 have same name ReceiptPOS1 as printer name. Except on Till 1, it would have IP address of 192.168.1.87. On till 2 it would have 192.168.1.88. So till 2 would direct all prints to 192.168.1.88 whereas till 1 would direct the prints to 192.168.1.87.

It worked so I’m not complaining :D. thanks for the help :smiley:

This is incorrect.

ReceiptPOS1 would have IP of 192.168.1.87. So Till 1 connects to ReceiptPOS1 on 192.168.1.87 and Till 2 connects to ReceiptPOS1 on 192.168.1.87. The IP of the printer is constant.

You consider the IP of the printer the unique identifier of the printer ReceiptPOS1. So in order to communicate with it, you must use the same IP address.

As an example, if you want to access SambaPOS website you go to www.sambapos.com. If you access from another computer, you also go to www.sambapos.com. Maybe not a very good example but the point I am meaning is the device you communicate with does not change, like the SambaPOS website will not change, it is constant, just like your printer.

Yeah but there are total of 3 printers involved. The kitchen printer would have an IP address of 192.168.1.89. I installed this on both tills with same IP address, so all prints from both tills that need to go to kitchen print would go to kitchen print. Then Till 1 has a printer, and till 2 has a printer, both printers cannot have the same IP address on the same subnet mask. The name can stay the same but not the IP address.
You would need to specify both printers an individual IP address if both tills are connected to the 1 server. Otherwise there would be an IP conflict issue.

Your method will work if both tills print to the same printer, in my case it would be the kitchen printer. I used that method and it works, but for each individual till printer, if they are on the same network, would require individual unique IP addresses.

Therefore to get around that issue I was having, I just kept the name the same on till 1 and 2, and had different IP addresses. This method worked. :smiley:

I responded to exactly what you said:

That was incorrect - however, what I believe you meant was you have actually 2 printers but you named the different printers with the same name ReceiptPOS1 (“till 2 and 1 have same name ReceiptPOS1 as printer name”). Because if ReceiptPOS1 is the same printer, it would not work the way you described here, because of what I said in previous replies.

So actually we end up going around and around on the topic because of that :stuck_out_tongue:

Personally, I would prefer to call each printer as a unique name - so the printer on till 1 would be ReceiptPOS1 and the (different) printer on till 2 would be ReceiptPOS2. Then, you can use mappings in SambaPOS to specify that till 1 sends receipts to ReceiptPOS1 and till 2 to ReceiptPOS2. Because then you have clear understanding in SambaPOS - you know ReceiptPOS1 is always the printer on till 1, and ReceiptPOS2 is always the printer on till 2.

2 Likes