Multi branch setup

I’ve had a query from a potential client about being able to have separate SambaPOS databases at different branches then having a call center setup of SambaPOS to take orders that then get sent to the respective branches.

I imagine the orders form the call center setup could be exported using a custom printer, and branch selection via ticket tags / entities for branches, however I am uncertain how the tickets could be imported to the branch systems. I know the API doesn’t allow creation of tickets, and if we just added tickets via SQL, rules wouldn’t trigger, and a requirement would be when an order is received from the call center it should print in the branch and also assign delivery. Is there anything that can be done right now?

Or how about some other options…

  1. I recall reading on the forum in the past that someone had used SQL hosted on Azure cloud. I know that this isn’t a recommended setup but anyone tried this got any feedback on speed issues? However such would require fast and stable internet connection, and SambaPOS won’t work if internet was down.
  2. Or how about if did use SQL on Azure cloud, with local SQL database that would use SQL replication to mirror the data from the cloud to then provide faster local speed plus would work if internet was down.

Or is there any updates / progress on any multi branch setup for SambaPOS?

Thanks :smile:

Think this would not be much difference from inserting directly into the SQL, isnt going to triger rules etc.

Emre did mention he had an idea for chains on the boards for the future, not heard anything since.

Don’t know what the minimum speed samba would need to work, if you forced 10Mbs on the network you could minic bandwidth for the upload on a reasonable FTTC connection, that would simulate single terminal remote link but latency is probably a bigger issue, ping on LAN is <1ms on my network to modem/router and thats at 2 switches away, dont know about other countries or places but ping on FTTC in my area gives 20-30ms, thats a big difference % wise.

Some form of inter-samba API would be awesome :smile:

Create ticket and associated functions would make a lot more possible if available via the API.

I would imagine that a web based cloud version of Sambapos would happen at some point. I don’t think it would be soon however. Emre has discussed this as being on his to do list. I’m hoping version 6 might be the next leap.

So what options do I have right now to import tickets? Is it going to be totally impossible?

I don’t see how it would be reliable enough. I think it would be best to wait and see what version 6 will involve. I have no information on v6 but if history shows anything he is probably already thinking about version 6. I do know that he wants to do something with cloud so I would think we may see something along those lines in the future. I am personally hoping for version 6 but who knows.

:confused: not like shopify I hope

If we forget about cloud, any way to just import a ticket?

Not with all the other automation it would need. I mean it might be possible but your talking about a lot of automation that needs to happen the most important stuff would be how it creates ticket transactions because those are hard coded.

How about if you injected all the needed SQL parts with ticket in a specific state and then set a triggered rule to check for tickets with that state and go from there?.. Allot of SQL but maybe?

Those are the bits I mean, allot of stuff you dont see without digging.

Or more simply inject list of product names/ids in to a program setting and a triggered rule to read the setting?..

Neither would be ideal I imagine.


This can be accomplished by small VDI deployment on each location. Install Hyper-V or ESX. Create Windows 10 virtual machines and install SambaPOS.

Remote users can connect using Remote Desktop, using custom port such as 3389,3390,3391…

Also you can use this software to publish Remote Desktop VMs to a website for easy connection.

Let me know if you have any questions.


@na1978 yeah I also thought of similar setup, however potential client I am discussing with does not want this sort of setup because of bottlenecks that could occur, especially with multiple connections over internet simutaneously. It’s a quick fix, not really a long term solution, and would work ok if you have a few users but I would guess you’d start to struggle as you add more VMs to connect to (I know hardware can be thrown at it as well as higher speed internet but this is a luxury not everybody has).

Tickets in what State?

If you wanted to inject a Settled/Paid Ticket, this would be the most simple. If you are talking about multi-branch setups that have the same Rules/Flow for marking Tickets and Orders, it could be done. With the big caveat that they are Settled, and you are simply using the data for Reporting purposes and it is done at the end of day. It would theoretically be a matter of inserting into a handful of tables in the proper sequence.

  • How would it affect Inventory calculations? Do you insert then force a Cache Reset before Ending Workperiod?
  • If the Tickets are not Settled, how do you make SambaPOS aware of their State?
  • How much data is stored in memory? That could cause huge conflicts on live systems.

Unfortunately, your original question/request implies that you want to do this Live, which I don’t think is really a possibility at this point, since SambaPOS is not aware of what is going on in the DB; that is, it does not monitor changes. There is no event for “Database Updated”.

Really, we need to be able to send a data-set containing Ticket details, in the form of JSON, XML, YAML, or whatever, and have the main system receive and process it, putting the Ticket in a Closed (Unpaid or Paid), Locked State.

Yeah, this is ideally where we need to go. You are correct in that the setup I am looking into would expect SambaPOS in the branches to act upon receiving the order - it might already have been settled, or not, but it would need to print in kitchen, add to delivery driver queue, etc. And like you say, this is where the major problem lies because there is no way to get SambaPOS to action things on a DB change.

But I feel anyway this is a hot topic, because even having just any way for SambaPOS to receive an order from an outside source will open up so so many possibilities. Separate from this, our company does ecommerce and I’d like to be able to have an online ordering website we can offer clients that then have the orders being pushed to SambaPOS, which would also require acting upon to print in kitchen, etc. That’s just one of many reasons I feel we really need this type of support.

How many VMs you need per branch. SambaPOS does not need a lot screen repaints. I would guess you need around 64KBps bandwidth per VM.

As far as hardware, any modern PC with i7 with enough RAM for each VM is fine.

Another possibility is to install SambaPOS on Terminal Server or Citrix.

Let us know more details.

My client doesn’t want to have setup via VM, therefore even I know it is an option, it is not for them. So I must investigate other options without using VM or cloud based DB.

@na1978 Thanks for your comments. :smile:

Sounds good. Good luck.

1 Like

BTW have you setup like this already before with VMs? Can you share your experience of how many terminals you have running like this? Would be good for future reference also for any others interested in such setup. Thanks :smile:

I have not setup SambaPOS because I never had a need.

I am System Administrator and I have setup Terminal Server many times. I also have setup VDI a few times.

SambaPOS is a very light weight application. It does not need a lot of resources.