Khắc phục sự cố đối với mẫu Order Printer đã nhập

Khi bạn di chuyển mẫu từ ứng dụng Order Printer cũ sang ứng dụng Shopify Order Printer mới, các biến Liquid sẽ được cập nhật để đảm bảo tính tương thích với ứng dụng mới. Trong một số ít trường hợp, bạn có thể cần phải khắc phục sự cố đối với mẫu đã nhập.

Nếu mẫu đã nhập không in chính xác, bạn có thể cần chỉnh sửa mã của mẫu theo cách thủ công trong ứng dụng Shopify Order Printer mới. Hãy xem lại những lý do phổ biến nhất sau đây khiến mẫu có thể không nhập chính xác:

  • Mẫu có chứa CSS tùy chỉnh
  • Mẫu có chứa trường siêu dữ liệu
  • Biến Liquid có thể không cập nhật chính xác

Trên trang này, bạn có thể tìm thấy thông tin chi tiết về cách khắc phục các sự cố có thể xảy ra khi nhập mẫu tùy chỉnh vào ứng dụng Shopify Order Printer mới.

Cập nhật tùy chỉnh thiết kế CSS phổ biến

Nếu mẫu bạn đang chuyển có chứa CSS tùy chỉnh, bạn có thể cần cập nhật mã CSS trong mẫu theo cách thủ công để hiển thị chính xác các thành phần thiết kế, chẳng hạn như hình ảnh, phông chữ tùy chỉnh, logo hoặc mã vạch.

Cập nhật biến trường siêu dữ liệu

Để truy cập trường siêu dữ liệu, bạn cần chỉ định không gian tên của trường siêu dữ liệu và không cần thêm .value vào biến. Tìm hiểu thêm về định nghĩa trường thông tin bổ sung.

Ví dụ: thay vì biến product.metafields.custom.manufacturerid.value, hãy sử dụng biến product.metafields.custom.manufacturerid.

Để xác định giá trị không gian tên cho từng trường siêu dữ liệu, hãy tham khảo trang Dữ liệu tùy chỉnh trong bảng điều khiển quản trị Shopify. Các định nghĩa trường thông tin bổ sung được nhóm theo các đối tượng mà chúng tham chiếu đến, chẳng hạn như sản phẩm, mẫu mã hoặc đơn hàng.

Cập nhật biến Liquid phổ biến

Trong hầu hết các trường hợp, các biến Liquid sẽ tự động cập nhật trong quá trình di chuyển. Tuy nhiên, nếu mẫu không di chuyển chính xác và bạn sử dụng bất kỳ biến nào được liệt kê trong phần này, bạn có thể cần thay thế các biến cũ bằng biến mới theo cách thủ công. Ứng dụng Shopify Order Printer sử dụng các biến khác với ứng dụng Order Printer cũ.

Ví dụ: nếu sử dụng biến date, bạn cần thay thế bằng biến created_at.

Biến đơn hàng

Biến đơn hàng được sử dụng theo cách khác trong ứng dụng Shopify Order Printer. Để truy cập biến đơn hàng, bạn cần thêm tiền tố order.. Ví dụ: để truy cập biến billing_address, bạn cần sử dụng order.billing_address.

Có thể truy cập các biến đơn hàng được sử dụng phổ biến sau mà không cần tiền tố order.:

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

Ví dụ: nếu muốn truy cập biến mục hàng, bạn có thể sử dụng line_items hoặc order.line_items.

Bạn cũng có thể tạo bí danh riêng cho mẫu. Ví dụ: bạn có thể sử dụng cú pháp Liquid {% assign fulfillments_count = order.fulfillments | size %}, rồi tham chiếu đến bí danh đó bằng cách sử dụng {{ fulfillments_count }} trong mã.

Biến đơn hàng
Biến trong ứng dụng Order Printer cũBiến trong ứng dụng Shopify Order Printer mới
line_items
  • Mục hàng đã hoàn tiền không nằm trong biến line_items . Xem các thông tin chi tiết sau:
    • Bạn có thể truy cập các mục hàng đã hoàn tiền bằng biến refunds.<each>.refund_line_items. Xem lại ví dụ sau.
      {% assign refunded_line_items = refunds | map: "refund_line_items" | map: "line_item" %}
    • Bạn có thể nối các mục hàng đã hoàn tiền với tập hợp line_items nếu muốn. Xem lại ví dụ sau.
      {% 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 %}
    • Bạn nên đảm bảo thêm bộ lọc | uniq để tránh trùng lặp các mục hàng đã hoàn tiền.
  • Mục hàng tiền boa không nằm trong biến line_items . Xem các thông tin chi tiết sau:
    • Bạn có thể truy cập các mục hàng tiền boa bằng biến tip_line_items.
    • Bạn có thể nối tip_line_items với tập hợp line_items nếu muốn. Xem lại ví dụ sau.
      {% assign line_items_with_tips = order.line_items | concat: order.tip_line_items %}
  • Để mô phỏng tập hợp line_items của Order Printer cũ, bạn có thể sử dụng mã ví dụ sau.
    {% 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_cardSử dụng chi tiết thanh toán dựa trên từng giao dịch từ đơn hàng bằng biến transactions.<each>.payment_details.
current_shipping_priceshipping_price
dateSử dụng biến created_at. Sử dụng bộ lọc date để định dạng dấu thời gian, ví dụ như {{ order.created_at | date: "%B %e, %Y" }}.
gatewaysunique_gateways hoặc transactions.<each>.gateway
order_currencycurrency
processed_atSử dụng biến created_at. Biến này chứa giá trị của order.processed_at từ API GraphQL và có nghĩa là thời gian thực tế xử lý đơn hàng, thay vì thời gian đơn hàng được nhập vào Shopify. Biến này giống với order.processed_at từ ứng dụng Order Printer cũ. Bạn có thể sử dụng bộ lọc date để định dạng dấu thời gian, ví dụ như {{ order.created_at | date: "%B %e, %Y" }}.
payment_transactions

Lọc qua order.transactions để tìm trạng thái kind trong cú pháp Liquid bằng where, hoặc bằng vòng lặp và lệnh if ở bên trong. Xem các ví dụ sau.

{% 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_transactionsLọc order.transactions theo trạng thái kind trong cú pháp Liquid bằng where, hoặc bằng vòng lặp và câu lệnh if bên trong, như ví dụ sau.
{% assign refund_transactions = order.transactions | where: "kind", "refund" %}
shipping_lineshipping_methods | first
shipping_linesshipping_methods
show_line_item_taxestax_lines.size > 0. Bạn có thể định nghĩa biến này ở đầu mẫu và tham chiếu nhiều lần, như ví dụ sau.
{% 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

Biến LineItem

Biến LineItem
Biến trong ứng dụng Order Printer cũBiến trong ứng dụng Shopify Order Printer mới
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

Biến hoàn tất đơn hàng

biến hoàn tất đơn hàng
Biến trong ứng dụng Order Printer cũBiến trong ứng dụng Shopify Order Printer mới
datecreated_at

Biến Shop

Biến shop
Biến trong ứng dụng Order Printer cũBiến trong ứng dụng Shopify Order Printer mới
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

Biến địa chỉ

Biến địa chỉ
Biến trong ứng dụng Order Printer cũBiến trong ứng dụng Shopify Order Printer mới
latitudeNếu biến address được tham chiếu từ thuộc tính location, thì vĩ độ và kinh độ sẽ có sẵn trên chính đối tượng location.
longitudeNếu biến address được tham chiếu từ thuộc tính location, thì vĩ độ và kinh độ sẽ có sẵn trên chính đối tượng location.

Biến hoàn tiền

Biến hoàn tiền
Biến trong ứng dụng Order Printer cũBiến trong ứng dụng Shopify Order Printer mới
dateSử dụng biến created_at. Sử dụng bộ lọc date để định dạng dấu thời gian, ví dụ như {{ order.created_at | date: "%B %e, %Y" }}.

Biến ShippingLine

Biến ShippingLine
Biến trong ứng dụng Order Printer cũBiến trong ứng dụng Shopify Order Printer mới
current_priceprice
priceoriginal_price

Biến giao dịch

Các biến giao dịch sau đã bị gỡ và không thể thay thế trong ứng dụng Shopify Order Printer:

  • authorization
  • message
  • test

Biến mẫu mã

biến mẫu mã
Biến trong ứng dụng Order Printer cũBiến trong ứng dụng Shopify Order Printer mới
gramsweight

Biến trường siêu dữ liệu

Để truy cập trường siêu dữ liệu, cần chỉ định Không gian tên của trường siêu dữ liệu đó và không cần thêm .value vào biến. Tìm hiểu thêm về định nghĩa trường thông tin bổ sung.

Ví dụ: thay vì dùng biến product.metafields.manufacturerid.value, hãy dùng biến product.metafields.custom.manufacturerid.

Để xác định giá trị Không gian tên cho từng trường siêu dữ liệu, hãy tham khảo trang Dữ liệu tùy chỉnh trong bảng điều khiển quản trị Shopify. Các định nghĩa trường thông tin bổ sung được nhóm theo đối tượng mà chúng tham chiếu đến, chẳng hạn như sản phẩm, mẫu mã hoặc đơn hàng.

Ánh xạ bộ lọc

Ánh xạ bộ lọc
Tên bộ lọc trong ứng dụng Order Printer cũTên bộ lọc trong ứng dụng Shopify Order Printer mới
files_urlfile_url
payment_methodpayment_methodsSử dụng trường transaction.gateway_display_name trên các giao dịch của đơn hàng. Các phương thức thanh toán không còn được phân loại thành các loại cụ thể như {credit card, debit card, bank transfer}. Ứng dụng Order Printer cũ chỉ ánh xạ một nhóm nhỏ các cổng thanh toán đang hoạt động vào các danh mục này. Nhà cung cấp cổng thanh toán quản lý các loại phương thức thanh toán mà khách hàng sử dụng trên hệ thống của họ.