Resolución de problemas en las plantillas de Order Printer importadas

Cuando migras las plantillas desde la aplicación Order Printer heredada a la nueva Shopify Order Printer, las variables de Liquid se actualizan para garantizar la compatibilidad con la nueva aplicación. En casos poco frecuentes, quizá tengas que solucionar problemas en las plantillas importadas.

Si las plantillas importadas no se imprimen correctamente, quizá tengas que editar manualmente el código de la plantilla en la nueva Shopify Order Printer. Revisa los motivos más comunes por los que puede que las plantillas no se importen correctamente:

  • Las plantillas incluyen CSS personalizado
  • Las plantillas contienen metacampos
  • Las variables de Liquid podrían no actualizarse correctamente

En esta página encontrarás información detallada sobre cómo resolver posibles problemas al importar plantillas personalizadas a la nueva Shopify Order Printer.

Actualizar personalizaciones comunes de diseño en CSS

Si las plantillas que transfieres incluyen CSS personalizado, es posible que debas actualizar manualmente el código CSS en las plantillas para mostrar correctamente elementos de diseño, como imágenes, fuentes personalizadas, logos o códigos de barras.

Actualizar variables de metacampo

Para acceder a un metacampo, debes especificar su espacio de nombres y no necesitas agregar .value a la variable. Más información sobre definiciones de metacampo.

Por ejemplo, en lugar de la variable product.metafields.custom.manufacturerid.value, usa la variable product.metafields.custom.manufacturerid.

Para identificar los valores de espacio de nombres de cada metacampo, consulta la página Datos personalizados en el panel de control de Shopify. Las definiciones de metacampo se agrupan por los objetos a los que hacen referencia, como productos, variantes o pedidos.

Actualizar variables comunes de Liquid

En la mayoría de los casos, las variables de Liquid se actualizan automáticamente durante el proceso de migración. Sin embargo, si las plantillas no se migran correctamente y usas alguna de las variables que se enumeran en esta sección, es posible que debas reemplazar manualmente las variables antiguas por las nuevas. La aplicación Shopify Order Printer usa variables diferentes a las de la aplicación heredada Order Printer.

Por ejemplo, si usas la variable date, entonces debes reemplazarla por la variable created_at.

Variables de pedido

Las variables de pedido se usan de manera diferente en la aplicación Shopify Order Printer. Para acceder a las variables de pedido, debes agregar el prefijo order.. Por ejemplo, para acceder a la variable billing_address, debes usar order.billing_address.

Las siguientes variables de pedido de uso común están disponibles sin el prefijo order.:

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

Por ejemplo, si quieres acceder a la variable de líneas de artículo, puedes usar line_items o order.line_items.

También puedes crear tus propios alias para la plantilla. Por ejemplo, puedes usar la sintaxis de Liquid {% assign fulfillments_count = order.fulfillments | size %} y luego hacer referencia a ese alias con {{ fulfillments_count }} en el código.

Variable de pedido
Variable en la aplicación heredada Order PrinterVariable en la nueva aplicación Shopify Order Printer
line_items
  • Líneas de artículo reembolsadas no están incluidas en la line_items variable. Revisa los siguientes detalles:
    • Puedes acceder a las líneas de artículo reembolsadas mediante la variable refunds.<each>.refund_line_items. Revisa el siguiente ejemplo.
      {% assign refunded_line_items = refunds | map: "refund_line_items" | map: "line_item" %}
    • Si lo deseas, puedes unir las líneas de artículo reembolsadas a la colección line_items. Revisa el siguiente ejemplo.
      {% 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 %}
    • Asegúrate de incluir el filtro | uniq para evitar duplicar las líneas de artículo reembolsadas.
  • Líneas de artículo de propina no están incluidas en la line_items variable. Revisa los siguientes detalles:
    • Puedes acceder a las líneas de artículo de propina con la variable tip_line_items.
    • Si lo deseas, puedes unir tip_line_items a la colección line_items. Revisa el siguiente ejemplo.
      {% assign line_items_with_tips = order.line_items | concat: order.tip_line_items %}
  • Para imitar la colección line_items heredada de Order Printer, puedes usar el siguiente código de ejemplo.
    {% 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_cardUsa los detalles de pago basados en cada transacción del pedido con la variable transactions.<each>.payment_details.
current_shipping_priceshipping_price
dateUsa la variable created_at. Usa el filtro date para dar formato a la marca de fecha y hora, por ejemplo con {{ order.created_at | date: "%B %e, %Y" }}.
gatewaysunique_gateways o transactions.<each>.gateway
order_currencycurrency
processed_atUsa la variable created_at. Contiene el valor de order.processed_at de la API GraphQL y corresponde al momento real en que se procesa el pedido, no al momento en que el pedido se importa en Shopify. Es igual a order.processed_at de la app Order Printer heredada. Puedes usar el filtro date para dar formato a la marca de fecha y hora, por ejemplo: {{ order.created_at | date: "%B %e, %Y" }}.
payment_transactions

Filtra order.transactions por el estado kind en la sintaxis de Liquid con where, o iterando y usando un if dentro. Consulta los siguientes ejemplos.

{% 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 de transacción: {{ transaction.id }} Tipo: {{ transaction.kind }} Importe: {{ 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_transactionsFiltra order.transactions por el estado kind en la sintaxis de Liquid con where o con un bucle y un if dentro, como en el siguiente ejemplo.
{% assign refund_transactions = order.transactions | where: "kind", "refund" %}
shipping_lineshipping_methods | first
shipping_linesshipping_methods
show_line_item_taxestax_lines.size > 0. Puedes definirla como una variable al principio de la plantilla y consultarla varias veces, como en el siguiente ejemplo.
{% 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

Variables de artículos de línea

Variable de artículo de línea
Variable en la aplicación heredada Order PrinterVariable en la nueva aplicación 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

Variables de preparación de pedidos

Variable de preparación de pedidos
Variable en la aplicación heredada Order PrinterVariable en la nueva aplicación Shopify Order Printer
datecreated_at

Variables de tienda

Variable de tienda
Variable en la aplicación heredada Order PrinterVariable en la nueva aplicación 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

Variables de dirección

Variable de dirección
Variable en la aplicación heredada Order PrinterVariable en la nueva aplicación Shopify Order Printer
latitudeSi se hizo referencia a la variable address desde el atributo location, entonces la latitud y la longitud estarán disponibles en el propio objeto location.
longitudeSi se hizo referencia a la variable address desde el atributo location, entonces la latitud y la longitud estarán disponibles en el propio objeto location.

Variables de reembolso

Variable de reembolso
Variable en la aplicación heredada Order PrinterVariable en la nueva aplicación Shopify Order Printer
dateUsa la variable created_at. Usa el filtro date para dar formato a la marca de fecha y hora, por ejemplo con {{ order.created_at | date: "%B %e, %Y" }}.

Variables de línea de envío

Variable de línea de envío
Variable en la aplicación heredada Order PrinterVariable en la nueva aplicación Shopify Order Printer
current_priceprice
priceoriginal_price

Variables de transacción

Se eliminaron las siguientes variables de transacción y no se pueden reemplazar en la app Shopify Order Printer:

  • authorization
  • message
  • test

Variables de variante

Variable de variante
Variable en la aplicación heredada Order PrinterVariable en la nueva aplicación Shopify Order Printer
gramsweight

Variables de metacampo

Para acceder a un metacampo, debes especificar el espacio de nombres del metacampo y no es necesario agregar .value a la variable. Más información sobre definiciones de metacampos.

Por ejemplo, en lugar de la variable product.metafields.manufacturerid.value, usa la variable product.metafields.custom.manufacturerid.

Para identificar los valores de espacio de nombres de cada metacampo, consulta la página Datos personalizados en el panel de control de Shopify. Las definiciones de metacampos se agrupan según los objetos a los que hacen referencia, como productos, variantes o pedidos.

Asignación de filtros

Asignación de filtros
Nombre del filtro en la app Order Printer heredadaNombre del filtro en la nueva app Shopify Order Printer
files_urlfile_url
payment_method y payment_methodsUsa el campo transaction.gateway_display_name en las transacciones de pedidos. Las formas de pago ya no se clasifican en tipos específicos, como {credit card, debit card, bank transfer}. La app Order Printer heredada solo asignaba a esas categorías un subconjunto pequeño de las pasarelas de pago que funcionan actualmente. Los proveedores de pasarelas de pago gestionan en sus sistemas los tipos de formas de pago que utilizan los clientes.