Поиск и устранение неисправностей в импортированных шаблонах Order Printer

Когда вы мигрируете свои шаблоны из устаревшего приложения Order Printer в новое приложение Shopify Order Printer, ваши переменные Liquid обновляются для обеспечения совместимости с новым приложением. В редких случаях может потребоваться устранить неполадки в импортированных шаблонах.

Если импортированные шаблоны печатаются некорректно, возможно, вам потребуется вручную отредактировать код шаблона в новом приложении Shopify Order Printer. Ниже перечислены наиболее распространенные причины некорректного импорта шаблонов.

  • Шаблоны включают пользовательский CSS
  • Шаблоны содержат метаполя
  • Переменные Liquid могут обновляться некорректно

На этой странице вы найдете подробную информацию о том, как устранять возможные проблемы при импорте пользовательских шаблонов в новое приложение Shopify Order Printer.

Обновление распространённых настроек дизайна в CSS

Если переносимые вами шаблоны содержат пользовательский CSS-код, вам может понадобиться вручную обновить его для корректного отображения элементов дизайна, таких как изображения, пользовательские шрифты, логотипы и штрих-коды.

Обновление переменных метаполей

Для доступа к метаполю необходимо указать его пространство имен, при этом добавлять .value к переменной не требуется. Узнайте больше об определениях метаполей.

Например, вместо переменной product.metafields.custom.manufacturerid.value используйте переменную product.metafields.custom.manufacturerid.

Чтобы определить значения пространства имен для каждого метаполя, перейдите на страницу «Пользовательские данные» в своей панели администратора Shopify. Определения метаполей сгруппированы по объектам, к которым они относятся, — таким как товары, варианты или заказы.

Обновление распространённых переменных 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.

Вы также можете создавать собственные псевдонимы для своего шаблона. Например, можно использовать синтаксис Liquid {% assign fulfillments_count = order.fulfillments | size %}, а затем обращаться к этому псевдониму в коде с помощью {{ 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_items с коллекцией line_items. Ознакомьтесь со следующим примером.
      {% assign line_items_with_tips = order.line_items | concat: order.tip_line_items %}
  • Чтобы сымитировать устаревшую коллекцию line_items в Order Printer, вы можете использовать следующий пример кода.
    {% 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" }}.
gatewaysunique_gateways или transactions.<each>.gateway
order_currencycurrency
processed_atИспользуйте переменную created_at. Она содержит значение order.processed_at из GraphQL API и означает фактическое время обработки заказа, а не время его импорта в Shopify. Эта переменная аналогична order.processed_at из устаревшего приложения Order Printer. Вы можете использовать фильтр date для форматирования временной метки, например: {{ order.created_at | date: "%B %e, %Y" }}.
payment_transactions

Отфильтруйте order.transactions по статусу kind с помощью синтаксиса Liquid where или цикла с оператором if внутри. Ознакомьтесь со следующими примерами.

{% 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 в синтаксисе Liquid с помощью where или с помощью цикла и внутреннего условия if, как в следующем примере.
{% 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

Переменные товарной позиции

Переменная товарной позиции
Переменная в старом приложении 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

Переменные магазина

Переменная магазина
Переменная в старом приложении 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
latitudeЕсли переменная address ссылается на атрибут location, то широта и долгота будут доступны в самом объекте location.
longitudeЕсли переменная address ссылается на атрибут location, то широта и долгота будут доступны в самом объекте location.

Переменные возврата платежа

Переменная возврата платежа
Переменная в старом приложении Order PrinterПеременная в новом приложении Shopify Order Printer
dateИспользуйте переменную created_at. Используйте фильтр date для форматирования временной метки, например {{ order.created_at | date: "%B %e, %Y" }}.

Переменные способа доставки

Переменная способа доставки
Переменная в старом приложении Order PrinterПеременная в новом приложении Shopify Order Printer
current_priceprice
priceoriginal_price

Переменные транзакции

Следующие переменные транзакций были удалены и не могут быть заменены в приложении Order Printer от Shopify:

  • authorization
  • message
  • test

Переменные варианта

Переменная варианта
Переменная в старом приложении Order PrinterПеременная в новом приложении Shopify Order Printer
gramsweight

Переменные метаполей

Чтобы получить доступ к метаполю, необходимо указать его пространство имён (Namespace), при этом добавлять .value к переменной не нужно. Подробнее об определениях метаполей.

Например, вместо переменной product.metafields.manufacturerid.value используйте переменную product.metafields.custom.manufacturerid.

Чтобы определить значения пространства имён (Namespace) для каждого метаполя, перейдите на страницу «Пользовательские данные» в панели администратора Shopify. Определения метаполей сгруппированы по объектам, к которым они относятся, таким как товары, варианты или заказы.

Соответствие фильтров

Соответствие фильтров
Название фильтра в предыдущей версии приложения Order PrinterНазвание фильтра в новом приложении Shopify Order Printer
files_urlfile_url
payment_method и payment_methodsИспользуйте поле transaction.gateway_display_name в транзакциях заказа. Способы оплаты больше не разделяются на определённые типы, например {кредитная карта, дебетовая карта, банковский перевод}. Предыдущая версия приложения Order Printer сопоставляла с этими категориями лишь небольшую часть действующих в настоящее время платёжных шлюзов. Поставщики платёжных шлюзов сами управляют типами способов оплаты, которые используют клиенты.