从 Order Printer 应用迁移到 Shopify Order Printer

如果您的旧版 Order Printer 应用中有任何自定义模板,则需要将模板迁移到 Shopify Order Printer 应用。

若要迁移模板,您可以将现有模板导入 Shopify Order Printer 应用。但是,新的 Shopify Order Printer 应用与旧版 Order Printer 应用的实现略有不同。这意味着某些现有模板最初可能无法工作,您可能需要对模板的代码执行一些调整。

若要使模板能够适用于新应用,您需要将旧版变量替换为新变量。例如,如果您使用 date 变量,则需要将其替换为 created_at 变量。

在此页面上,您可以找到在 Shopify Order Printer 应用中需要替换为新变量的变量列表。

迁移现有模板的注意事项

将现有模板迁移到 Shopify Order Printer 应用前,请查看以下注意事项:

将现有模板迁移到 Shopify Order Printer 应用

如果您的旧版 Order Printer 应用中有现有模板,则您可以将它们导入 Shopify Order Printer 应用。您无法导入特定模板,只能同时导入所有模板。

步骤:

  1. 在 Shopify 后台中,转到设置 > 应用和销售渠道

  2. 点击 Order Printer

  3. 点击打开应用

  4. 点击模板

  5. 点击导入

  6. 在对话框中,点击导入

  7. 查看您的模板是否使用了任何旧版变量,然后用新的变量替换它们

  8. 预览模板并确保模板正确显示。

  9. 可选:打印测试文档。

在 Shopify Order Printer 应用中使用订单变量

订单变量在 Shopify Order Printer 应用中的使用方式有所不同。若要访问订单变量,您需要添加 order. 前缀。例如,若要访问 billing_address 变量,您需要使用 order.billing_address

无需添加 order. 前缀即可访问以下常用订单变量:

  • line_items
  • tax_lines
  • fulfillments
  • transactions
  • refunds
  • shipping_methods
  • customer

例如,如果要访问订单项目变量,则可以使用 line_itemsorder.line_items

您还可以为模板创建您自己的别名。例如,您可以使用 {% assign fulfillments_count = order.fulfillments | size %} Liquid 语法,然后通过在代码中使用 {{ fulfillments_count }} 来引用它。

变量映射

Shopify Order Printer 应用与旧版 Order Printer 应用使用不同的变量。如果您的现有模板使用此部分列出的任何变量,则您需要将旧变量替换为新变量。

例如,如果您使用 date 变量,则需要将其替换为 created_at 变量。

订单变量

订单变量
旧版 Order Printer 应用中的变量新版 Shopify Order Printer 应用中的变量
line_items
  • 已退款订单项目不包含在 line_items 变量中。查看以下详细信息:
    • 您可以使用 refunds.<each>.refund_line_items 变量访问已退款订单项目。查看以下示例。
      {% assign refunded_line_items = refunds | map: "refund_line_items" | map: "line_item" %}
    • 如果有需要,您可以将已退款订单项目加入到 line_items 产品系列中。查看以下示例。
      {% assign refunded_line_items = order.refunds | map: "refund_line_items" | map: "line_item" %} {% assign line_items_with_refunded = order.line_items | concat: refunded_line_items | uniq %}
    • 您应确保包含 | uniq 筛选条件,以免已退款订单项目重复。
  • 小费订单项目不包含在 line_items 变量中。查看以下详细信息:
    • 您可以使用 tip_line_items 变量访问小费订单项目。
    • 如果有需要,您可以将 tip_line_items 加入到 line_items 产品系列中。查看以下示例。
      {% assign line_items_with_tips = order.line_items | concat: order.tip_line_items %}
  • 若要模拟旧版 Order Printer line_items 产品系列,您可以使用以下示例代码。
    {% assign refunded_line_items = refunds | map: "refund_line_items" | map: "line_item" %} {% assign all_line_items = order.line_items | concat: refunded_line_items | concat: order.tip_line_items | uniq %} {% for line_item in all_line_items %} ... {% endfor %}
credit_card通过 transactions.<each>.payment_details 变量,使用基于订单每笔交易的付款详细信息。
current_shipping_priceshipping_price
date使用 created_at 变量。使用 date 筛选条件设置时间戳的格式,例如使用 {{ order.created_at | date: "%B %e, %Y" }}
网关 unique_gatewaystransactions.<each>.gateway
order_currency货币
processed_at使用 created_at 变量。它包含 GraphQL API 中 order.processed_at 的值,这表示处理订单的实际时间,而不是将订单导入 Shopify 的时间。这与旧版 Order Printer 应用中 order.processed_at 的相同。您可以使用筛选条件 date 设置时间戳的格式,例如使用 {{ order.created_at | date: "%B %e, %Y" }}
payment_transactions

通过 order.transactions 筛选 - 针对 kind 状态使用内含 where 或内含循环和 if 的 Liquid 语法。查看以下示例。

{% assign sale_transactions = order.transactions | where: "kind", "sale" %} {% assign capture_transactions = order.transactions | where: "kind", "capture" %} {% for transaction in transactions %} {% if transaction.kind == "sale" or transaction.kind == "capture" %} 交易 ID:{{ transaction.id }} 种类:{{ transaction.kind }} 金额:{{ transaction.amount | money }} {% endif %} {% endfor %}

{% assign sale_transactions = order.transactions | where: "kind", "sale" %}{% assign capture_transactions = order.transactions | where: "kind", "capture" %}{% assign payment_transactions = sale_transactions | concat: capture_transactions %}

refund_transactions通过 order.transactions 筛选 - 针对 kind 状态使用内含 where 或内含循环和 if 的 Liquid 语法,如以下示例所示。
{% assign refund_transactions = order.transactions | where: "kind", "refund" %}
shipping_lineshipping_methods | first
shipping_linesshipping_methods
show_line_item_taxes tax_lines.size > 0。您可以在模板开头将它定义为一个变量,并多次引用,例如以下示例所示。
{% if tax_lines.size > 0 %} {% assign show_line_item_taxes = true %} {% else %} {% assign show_line_item_taxes = false %} {% endif %}
total_taxtax_price
total_paidnet_payment

LineItem 变量

LineItem 变量
旧版 Order Printer 应用中的变量新版 Shopify Order Printer 应用中的变量
fulfillable_quantityquantity - successfully_fulfilled_quantity
已发货quantity == successfully_fulfilled_quantity
姓名title
product_titleproduct.title
unit_discountquantity ? line_level_total_discount / quantity : 0
variant_titlevariant.title
weightgrams

发货变量

发货变量
旧版 Order Printer 应用中的变量新版 Shopify Order Printer 应用中的变量
date创建时间

商店变量

shop 变量
旧版 Order Printer 应用中的变量新版 Shopify Order Printer 应用中的变量
所有者account_owner.name
addressshop.address.address1
address2shop.address.address2
cityshop.address.city
国家/地区shop.address.country
country_codeshop.address.country_code
provinceshop.address.province
province_codeshop.address.province_code
邮编shop.address.zip

地址变量

地址变量
旧版 Order Printer 应用中的变量新版 Shopify Order Printer 应用中的变量
latitude如果通过 location 属性引用 address 变量,则 latitude 和 longitude 可用作 location 对象本身的变量。
longitude如果通过 location 属性引用 address 变量,则 latitude 和 longitude 可用作 location 对象本身的变量。

退款变量

退款变量
旧版 Order Printer 应用中的变量新版 Shopify Order Printer 应用中的变量
date使用 created_at 变量。使用 date 筛选条件设置时间戳的格式,例如使用 {{ order.created_at | date: "%B %e, %Y" }}

ShippingLine 变量

ShippingLine 变量
旧版 Order Printer 应用中的变量新版 Shopify Order Printer 应用中的变量
current_priceprice
priceoriginal_price

交易变量

以下交易变量已被删除,无法在 Shopify Order Printer 应用中替换:

  • authorization
  • message
  • test

多属性变量

多属性变量
旧版 Order Printer 应用中的变量新版 Shopify Order Printer 应用中的变量
gramsweight

元字段变量

若要访问元字段,您需要指定元字段的命名空间,并且无需将 .value 添加到变量中。详细了解元字段定义

例如,请改用 product.metafields.custom.manufacturerid 变量,而不是 product.metafields.manufacturerid.value 变量。

若要识别每个元字段的命名空间值,请参阅 Shopify 后台中的自定义数据页面。元字段定义按其引用的对象(例如产品、多属性或订单)进行分组。

筛选条件映射

筛选条件映射
在旧版 Order Printer 应用中筛选名称在新版 Shopify Order Printer 应用中筛选名称
files_urlfile_url
payment_methodpayment_methods 在订单交易上使用 transaction.gateway_display_name 字段。付款方式不再分类为特定类型,例如信用卡、借记卡、银行转账。旧版 Order Printernter 仅将当前有效支付网关的一小部分映射到这些类别。支付网关提供商会管理客户使用的付款方式类型。
没有找到您需要的答案?我们将为您提供帮助。