我正在寻找一个与POS打印的解决方案。
场景是:
一家餐馆目前已经启动并运行了POS机系统,他们从商店的iPads接受订单,并有一个网络设置来处理订单,并在厨房的热敏打印机上自动打印出来(很酷,是吧?)。无论如何,这家餐厅也有一个在线订购的网站(用PHP编写),必须通过电子邮件手动检查。餐厅希望他们的在线系统自动将每个订单发送到打印机。
我必须补充说,我没有参与他们的网站或他们的内部订购系统的开发。我以前没有用过PHP to POS系统--这有可能吗?将数据从网站表单自动发送到POS打印机的替代解决方案有哪些?
发布于 2013-04-09 23:52:35
php网站上的Webservice,状态标志为已处理或未处理。每x分钟从内部应用程序/内部应用程序查询一次when服务(1分钟可能就足够了),列出所有未处理的订单,并在检索到订单时将它们标记为已处理(hack,但也足够了)
c#/java/c++等将最好地避免基于web的不能访问本地打印机接口/队列的问题,app只是从web服务取回结果集并格式化/打印它。
相当简单,大概只需20行php代码,也许不到100k的c#代码就可以很好地完成这项工作。
发布于 2013-04-10 00:00:07
我会更少考虑打印机,而更多地考虑如何与他们使用的POS软件接口。找出制造商、产品名称和版本号(如果可以)。然后与制造商联系,看看他们是否有可以连接的SDK或API。
当它真正连接到网站时,我不会直接从你的PHP页面调用到他们的POS系统。即使可能,这种紧密耦合也意味着如果POS系统离线或无法访问,网站将被破坏。
相反,使用数据库或排队系统来存储来自网站的订单。编写一点中间件(例如守护进程或服务),它们将从数据库或队列中读取数据,并使用它们的SDK或API将订单提供给POS系统。
从长远来看,保持这些系统的解耦将为您节省大量的时间和金钱。没有它,你肯定会有可伸缩性问题。
想一想这一点--如果您确实直接写入打印机,如果同时收到两个订单,会发生什么情况?这两个订单的数据会不会对票证造成影响?会不会有一个订单失败,而另一个订单通过?这比你想象的更有可能,因为餐馆在高峰期往往很繁忙。去问问在超级碗星期天在披萨外卖餐厅工作过的人吧。
发布于 2013-04-10 21:59:44
如果平板电脑应用程序真的是通过WIFI连接到已配置的网络打印机,并且打印机只有网络连接,并且没有其他PC,那么这意味着您有更多的工作要做。你可以采取几种方法。无论哪种方式,你都必须在现场配备一台PC。如果您可以从web浏览器打印到本地网络上的网络打印机,则可以使用一种简单的方法进行打印。如果您设置了一台具有Web应用程序访问权限的PC,您可以在本地网络上配置相同的网络打印机,然后只需创建一个带有样式表media=print的html页面来适当地格式化订单,然后在单击按钮时调用javascript print就可以了。这需要一台登录到网站的PC,以及一个管理订单并单击打印的人,以便使用标准方法将订单数据发送到打印机。第二种方法是识别打印机制造商,下载打印机型号的POS驱动程序,并编写一个类来处理发票的获取、排队和释放到打印机,然后创建一个向打印机写入订单的调度作业,类似于服务。这也需要一台PC在现场,但不需要有人监控订单和打印队列。第二种方法将花费客户更多的钱来开发。
https://stackoverflow.com/questions/15906572
复制相似问题