インポートした Order Printer テンプレートに関する問題のトラブルシューティング

テンプレートをレガシー Order Printer アプリから新しい Shopify Order Printer アプリに移行すると、新しいアプリとの互換性を確保するために Liquid 変数が更新されます。まれに、インポートしたテンプレートのトラブルシューティングが必要になる場合があります。

インポートしたテンプレートが正しく印刷されない場合は、新しい Shopify Order Printer アプリでテンプレートのコードを手動で編集する必要がある場合があります。テンプレートが正しくインポートされない最も一般的な理由として、以下の点を確認してください。

  • テンプレートにカスタム CSS が含まれている
  • テンプレートにメタフィールドが含まれている
  • Liquid 変数が正しく更新されない可能性がある

このページでは、カスタムテンプレートを新しい Shopify Order Printer アプリにインポートする際の潜在的な問題をトラブルシューティングする方法について、詳しく説明します。

一般的な CSS デザインのカスタマイズを更新する

転送するテンプレートにカスタム CSS が含まれている場合、画像、カスタムフォント、ロゴ、バーコードなどのデザイン要素を正しく表示するために、テンプレートの CSS コードを手動で更新する必要がある場合があります。

メタフィールド変数の更新

メタフィールドにアクセスするには、メタフィールドのネームスペースを指定する必要があり、変数に .value を追加する必要はありません。詳しくは、メタフィールドの定義をご覧ください。

たとえば、product.metafields.custom.manufacturerid.value 変数の代わりに、product.metafields.custom.manufacturerid 変数を使用します。

各メタフィールドのネームスペース値を確認するには、管理画面の [カスタムデータ] ページを参照してください。メタフィールドの定義は、商品、バリエーション、注文など、参照するオブジェクト別にグループ化されています。

一般的な Liquid 変数の更新

ほとんどの場合、Liquid 変数は移行プロセス中に自動で更新されます。ただし、テンプレートが正しく移行されず、このセクションに記載されているいずれかの変数を使用している場合は、古い変数を新しい変数に手動で置き換える必要がある場合があります。Shopify Order Printer アプリでは、レガシー版の Order Printer アプリとは異なる変数が使用されます。

たとえば、date 変数を使用している場合は、created_at 変数に置き換える必要があります。

注文変数

Shopify Order Printer アプリでは、注文変数の使用方法が異なります。注文変数にアクセスするには、接頭辞として order. を追加する必要があります。たとえば、billing_address 変数にアクセスするには、order.billing_address を使用する必要があります。

以下のよく使用される注文変数は、order. という接頭辞なしでアクセスできます。

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

たとえば、項目変数にアクセスする場合は、line_items または order.line_items を使用できます。

テンプレートに独自のエイリアスを作成することもできます。たとえば、{% assign fulfillments_count = order.fulfillments | size %} という Liquid 構文を使用し、コード内で {{ fulfillments_count }} を使用して参照できます。

注文変数
レガシー版 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_itemsline_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
datecreated_at 変数を使用してください。タイムスタンプをフォーマットするには、{{ order.created_at | date: "%B %e, %Y" }} のように date フィルターを使用します。
gatewaysunique_gateways または transactions.<each>.gateway
order_currencycurrency
processed_atcreated_at 変数を使用します。これは GraphQL API の order.processed_at の値を保持します。注文が Shopify にインポートされた時間ではなく、注文が実際に処理された時間を意味します。これは、レガシーの Order Printer アプリの order.processed_at と同じです。date フィルターを使用すると、タイムスタンプをフォーマットできます。たとえば、{{ order.created_at | date: "%B %e, %Y" }} のように使用します。
payment_transactions

Liquid 構文で where を使用するか、ループと内部の if を使用して、order.transactions から kind ステータスを絞り込みます。以下の例を確認してください。

{% 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" %} Transaction ID: {{ transaction.id }} Kind: {{ transaction.kind }} Amount: {{ 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以下の例のように、where を使用した Liquid 構文、または if を組み込んだループ処理により、order.transactionskind ステータスで絞り込みます。
{% assign refund_transactions = order.transactions | where: "kind", "refund" %}
shipping_lineshipping_methods | first
shipping_linesshipping_methods
show_line_item_taxestax_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
fulfilledquantity == successfully_fulfilled_quantity
nametitle
product_titleproduct.title
unit_discountquantity ? line_level_total_discount / quantity : 0
variant_titlevariant.title
weightgrams

フルフィルメント変数

フルフィルメント変数
レガシー版 Order Printer アプリの変数新しい Shopify Order Printer アプリの変数
datecreated_at

Shop 変数

Shop 変数
レガシー版 Order Printer アプリの変数新しい Shopify Order Printer アプリの変数
owneraccount_owner.name
addressshop.address.address1
address2shop.address.address2
cityshop.address.city
countryshop.address.country
country_codeshop.address.country_code
provinceshop.address.province
province_codeshop.address.province_code
zipshop.address.zip

住所変数

住所変数
レガシー版 Order Printer アプリの変数新しい Shopify Order Printer アプリの変数
latitudeaddress 変数が location 属性から参照された場合、緯度と経度は location オブジェクト自体で利用できます。
longitudeaddress 変数が location 属性から参照された場合、緯度と経度は location オブジェクト自体で利用できます。

返金変数

返金変数
レガシー版 Order Printer アプリの変数新しい Shopify Order Printer アプリの変数
datecreated_at 変数を使用してください。タイムスタンプをフォーマットするには、{{ order.created_at | date: "%B %e, %Y" }} のように date フィルターを使用します。

ShippingLine 変数

ShippingLine 変数
レガシー版 Order Printer アプリの変数新しい Shopify Order Printer アプリの変数
current_priceprice
priceoriginal_price

取引変数

以下の取引変数は削除されており、Shopify Order Printer アプリで置き換えることはできません。

  • authorization
  • message
  • test

バリエーション変数

バリエーション変数
レガシー版 Order Printer アプリの変数新しい Shopify Order Printer アプリの変数
gramsweight

メタフィールド変数

メタフィールドにアクセスするには、メタフィールドの Namespace を指定する必要があり、変数に .value を追加する必要はありません。 メタフィールドの定義について、詳しくはこちらをご覧ください。

たとえば、product.metafields.manufacturerid.value 変数の代わりに、product.metafields.custom.manufacturerid 変数を使用します。

各メタフィールドの Namespace の値を確認するには、管理画面の [カスタムデータ] ページを参照してください。メタフィールドの定義は、商品、バリエーション、注文など、参照するオブジェクトによってグループ化されています。

フィルターのマッピング

フィルターのマッピング
レガシー Order Printer アプリでのフィルター名新しい Shopify Order Printer アプリでのフィルター名
files_urlfile_url
payment_methodpayment_methods注文の取引で transaction.gateway_display_name フィールドを使用します。決済方法は、{クレジットカード、デビットカード、銀行振込} などの特定のタイプに分類されなくなりました。レガシー Order Printer アプリでは、現在機能している決済ゲートウェイのごく一部のみが、これらのカテゴリーにマッピングされていました。お客様が使用する決済方法の種類は、決済ゲートウェイプロバイダー側で管理されます。