在系统参数设置 order_print_trigger_templete 中的打印内容模板,可使用下面的变量,具体说明如下:


语法


模板采用 freemarker 引擎解析,所以原生支持所有的 freemarker 语法,你可以自行百度一下  freemarker 语法的简单使用,包括如何判断、如何循环、如何格式化处理数据等等


标签支持


打印机使用标签(类似 html 格式)来格式化输出内容,具体说明如下:


 1<BR> :换行符
 2<CUT> :切刀指令(主动切纸,仅限切刀打印机使用才有效果) 
 3<LOGO> :打印LOGO指令(前提是预先在机器内置LOGO图片)
 4<PLUGIN> :钱箱或者外置音响指令
 5<CB></CB>:居中放大
 6<B></B>:放大一倍
 7<C></C>:居中
 8<L></L>:字体变高一倍
 9<W></W>:字体变宽一倍
10<QR></QR>:二维码(单个订单,最多只能打印一个二维码)
11<RIGHT></RIGHT>:右对齐
12<BOLD></BOLD>:字体加粗


参考模板


 1<CB>${order.id} 号</CB><BR>
 2<RIGHT>${.now?datetime}</RIGHT><BR>
 3名称                数量 金额<BR>
 4--------------------------------<BR>
 5<#list goods as test>
 6${test.goodsName} ${test.property!""}   ${test.number}  ${test.amount}
 7</#list>
 8--------------------------------<BR>
 9合计:${order.amountReal}元<BR>
10订单号:${order.orderNumber}<BR>
11联系电话:0571-28180512<BR>
12<QR>https://www.it120.cc/</QR>


可用变量


打印时间


1${.now?datetime}


?datetime 为文本格式化,当前格式化内容会输出 yyyy-MM-dd HH:mm:ss 的格式;


${.now?date} 格式化内容会输出 日期 的格式,不显示时间;


${.now?time} 格式化内容会输出 时间 的格式,不显示日期;


${.now?string("HH:mm")} 格式化内容会输出 几点几分 的格式;


具体可以查阅 freemarker 的使用手册


订单相关变量引用


1${order.XXXXX}


后台订单详情接口返回的json数据中的 order 对象里的值都可以调用,比如:

${order.qudanhao} 将会打印出取餐号;


${order.orderNumber} 将会打印出订单号;


${order.amountReal} 将会打印出订单实际支付金额;


订单的商品明细


1<#list goods as test>
2...  (这里面就可以调用 ${test.XXXX} 来显示商品数据)
3</#list>


上面代码遍历打印所有的订单商品,后台订单详情接口返回的json数据中的 goodsList 对象里的值都可以调用


收货地址


1${logistics.XXXXXX}


后台订单详情接口返回的json数据中的 apiExtOrderLogistics 对象里的值都可以调用


所属门店数据


1${shopInfo.XXXXXX}


如果当前订单有归属门店,那么你就可以调用上面的变量直接打印门店数据;

后台门店详情接口返回的json数据中变量都可以调用


订单扩展属性


1${extJson.XXXXXX}


后台订单详情接口返回的json数据中的 extJson 对象里的值都可以调用