大数跨境

POS UI 扩展现在可以直接向硬件收据打印机打印

POS UI 扩展现在可以直接向硬件收据打印机打印 Shopify电商独立站
2026-07-27
1
导读:POS UI Extensions 2026-07 引入了打印 API(shopify.printing),使扩展程序能够通过 getPrinters() 发现硬件打印机,并通过 print() 将文

POS UI Extensions 2026-07 引入了 Printing API(shopify.printing),使扩展程序能够通过 getPrinters() 发现硬件打印机,并通过 print() 将文档直接发送到已连接的热敏票据打印机。

Printing API 取代了现已弃用的 shopify.print。无需立即采取行动;请在采用 2026-07 时计划迁移。

变更内容

  • shopify.printing.getPrinters() 返回设备可用的硬件打印机。每台打印机都包含一个 id、name 和 connected 状态。
  • shopify.printing.print(src, options?) 在 src 处打印文档。如果省略 options.printer,系统将打开打印对话框。如果传入由 getPrinters() 返回的打印机,则文档将直接打印到该打印机,而不会显示对话框。

src 必须是附加到应用 application_url 的相对路径,或是同一源上的完整 URL。文档使用扩展程序的会话令牌进行获取。

热敏票据打印机可以直接渲染 HTML 和图片。PDF 需要系统打印对话框:如果当 src 指向 PDF 时传入 printer,shopify.printing.print 将抛出错误。对于 PDF,请始终省略 options.printer 并依赖系统打印对话框。

以前,shopify.print 只能打开系统打印对话框,而无法针对专用热敏票据打印机。早期版本的 POS UI Extensions API 保持不变。


注意: 硬件打印机发现功能需要 Shopify POS 版本 11.11.0 或更高版本。在更早的版本中,即使配对了热敏票据打印机,<code><span class="PreventFireFoxApplyingGapToWBR">get<wbr/>Printers()</span></code> 也会返回空数组。这不影响系统打印对话框,后者仍然可用。


始终通过回退到系统打印对话框来处理空数组的情况。这也涵盖了没有收据打印机的商户:

const printers = await shopify.printing.getPrinters(); const receiptPrinter = printers.find((printer) => printer.connected); if (receiptPrinter) { await shopify.printing.print('/print/receipt', {printer: receiptPrinter}); } else { await shopify.printing.print('/print/receipt'); }

Printing API 适用于所有 POS UI 扩展目标。要验证直接打印功能,请在配备 POS 11.11.0 或更高版本及已配对热敏票据打印机的开发商店中进行测试。调用 shopify.printing.print 并传入来自 getPrinters() 的打印机;如果作业在没有对话框的情况下成功打印,则说明直接打印功能正常。

相关文档

  • Printing API 参考
  • Print API 参考(已弃用)
【声明】内容源于网络
0
0
Shopify电商独立站
1234
内容 7146
粉丝 0
Shopify电商独立站 1234
总阅读87.4k
粉丝0
内容7.1k