我正在寻找POS打印解决方案。
场景是:
一家餐馆目前正在运行POS系统,他们从商店的iPad上接受订单,并拥有处理订单的网络设置,并自动将它们打印在厨房的热敏打印机上(非常酷,嗯?)。无论如何,这家餐厅还有一个在线订购网站(用PHP编写),必须通过电子邮件手动检查。餐厅希望他们的在线系统自动将每个订单发送到打印机。
我必须补充一点,我没有参与他们网站的开发或他们的内部订购系统。我以前没有使用PHP到POS系统 - 它甚至可能吗?有哪些替代解决方案可以自动将数据从网站表单发送到POS打印机?
答案 0 :(得分:2)
php网站上的Webservice,带有处理或未处理的状态标志。 每隔x分钟(1可能就足够了)从内部应用程序/内部应用程序查询Web服务,列出所有未处理的订单,并在检索到时将其标记为已处理(黑客但足够)
c#/ java / c ++等最好避免基于Web的问题无法访问本地打印机接口/队列应用程序只需从Web服务中取回结果并格式化/打印它。
相当简单的20行PHP可能并且可能不到10万的c#就可以做得很好。
答案 1 :(得分:1)
我会更少考虑打印机,更多关于如何与他们使用的POS软件进行交互。找出制造商,产品名称和版本号(如果可以)。然后与该制造商联系,看看他们是否有可以挂钩的SDK或API。
当涉及到将其实际挂钩到网站时,我不会直接从您的PHP页面拨打他们的POS系统。即使可能,这种紧密耦合也意味着如果POS系统离线或无法访问,那么网站就会被破坏。
而是使用数据库或排队系统来存储来自网站的订单。编写一小部分将从数据库或队列中读取的中间件(如守护程序或服务),并使用其SDK或API将订单提供给POS系统。
从长远来看,保持这些系统解耦将为您节省大量时间和金钱。没有它,您肯定会遇到可扩展性问题。
想想这一秒 - 如果你直接写到打印机,如果两个订单同时进入会怎么样?这两张订单的数据是否会出现乱码?一个订单会在另一个订单失败时失败吗?这比你想象的更有可能,因为餐馆在高峰时期往往很忙。去问周日在Superbowl的披萨送餐厅工作的人。
答案 2 :(得分:0)
如果Tablet应用程序确实是通过WIFI连接到已配置的网络打印机,并且打印机只是网络连接,并且没有其他PC,那么这意味着您需要为您做更多的工作。您可以采取几种方法。无论哪种方式,您都必须在现场安装PC。如果您可以通过本地网络打印到网络打印机,则可以通过Web浏览器轻松地进行拍摄。如果您设置了具有Web应用程序访问权限的PC,您可以在本地网络上配置相同的网络打印机,然后只需创建一个带有样式表media = print的html页面,该页面适当地格式化顺序,然后单击按钮上的javascript打印调用应该这样做。这需要PC登录到网站,以及管理订单和点击打印的人员,以便使用标准方法将订单数据提供给打印机。第二种方法是识别打印机制造商,下载打印机型号的POS驱动程序,并编写一个类来处理获取,排队和发票到打印机的发票,然后创建一个将订单写入打印机的预定作业服务。这也需要现场的PC,但不需要监视订单和打印队列的人。第二种方法是让客户花费更多的钱来开发。