Saltar al contenido principal
Versión: 1.x

Referencia de datos del recibo

Las plantillas HTML sin lógica y las plantillas XML térmicas de WCPOS se renderizan a partir del mismo payload canónico de recibo. Se utilizan rutas de punto Mustache como {{order.number}}, {{store.name}} y {{totals.total_display}}. Los arreglos se renderizan con secciones:

{{#lines}}
{{name}} x {{qty}} — {{line_total_display}}
{{/lines}}

El contrato canónico es producido por el constructor de datos de recibo de WCPOS en el servidor y replicado por el renderizador de recibos sin conexión en la aplicación. Los recibos se abren inmediatamente con datos locales y luego se actualizan con la respuesta del servidor cuando está disponible, por lo que las plantillas personalizadas deben utilizar los campos indicados a continuación en lugar de los métodos PHP de orden.

Reglas de renderizado

Campos de moneda

Los campos monetarios numéricos se conservan como números y el renderizador agrega campos _display con formato según la configuración regional para la salida en plantillas:

Campo numéricoCampo de visualización
totals.totaltotals.total_display
lines[].line_totallines[].line_total_display
payments[].amountpayments[].amount_display
tax_summary[].tax_amounttax_summary[].tax_amount_display

Se recomienda utilizar los campos _display al imprimir recibos. Los campos numéricos deben usarse únicamente para secciones condicionales o salida legible por máquina.

Campos con formato de visualización de impuestos

Varios campos tienen variantes con impuestos incluidos y excluidos, además de un valor de conveniencia para la visualización. El valor de conveniencia sigue la configuración de visualización de impuestos del carrito de la tienda.

Campo de convenienciaCampo con impuestos incluidosCampo con impuestos excluidos
lines[].unit_pricelines[].unit_price_incllines[].unit_price_excl
lines[].unit_subtotallines[].unit_subtotal_incllines[].unit_subtotal_excl
lines[].line_subtotallines[].line_subtotal_incllines[].line_subtotal_excl
lines[].discountslines[].discounts_incllines[].discounts_excl
lines[].line_totallines[].line_total_incllines[].line_total_excl
fees[].totalfees[].total_inclfees[].total_excl
shipping[].totalshipping[].total_inclshipping[].total_excl
discounts[].totaldiscounts[].total_incldiscounts[].total_excl
totals.subtotaltotals.subtotal_incltotals.subtotal_excl
totals.discount_totaltotals.discount_total_incltotals.discount_total_excl
totals.totaltotals.total_incltotals.total_excl

Objetos de fecha

Los campos de fecha son objetos con múltiples variantes preformateadas. Esto evita realizar el formateo de fechas dentro de Mustache.

CampoDescripción
datetime, date, timeCadenas de fecha/hora predeterminadas
datetime_short, datetime_long, datetime_fullFormatos combinados adaptados a la configuración regional
date_short, date_long, date_fullFormatos de solo fecha adaptados a la configuración regional
date_ymd, date_dmy, date_mdyFormatos de fecha con orden fijo
weekday_short, weekday_longNombres de días
day, month, month_short, month_long, yearComponentes individuales de fecha

Objetos de fecha disponibles: order.created, order.paid, order.completed, order.printed y refunds[].date. order.printed se actualiza en el momento de la renderización, lo cual es útil para reimpresiones.

Secciones de nivel superior

SecciónTipoDescripción
orderobjetoIdentidad del pedido, estado, fechas, nota e información de URL de pago
storeobjetoIdentidad de la tienda, dirección, datos de contacto, identificaciones fiscales, logotipo, horario y texto de pie de página
cashierobjetoUsuario que procesó el pedido
customerobjetoNombre visible del cliente, direcciones e identificaciones fiscales
linesarrayLíneas de productos del pedido
feesarrayFilas de cargos
shippingarrayFilas de envío
discountsarrayFilas de cupones/descuentos
totalsobjectTotales del pedido, totales de pago, resumen de reembolsos y conteos de artículos
taxobjectIndicadores del modo de visualización de impuestos para guardas de sección
tax_summaryarrayFilas de resumen de impuestos por tasa
has_tax_summarybooleanGuarda de conveniencia para tax_summary
paymentsarrayFilas de pagos
refundsarrayRegistros de reembolsos aplicados al pedido
fiscalobjectCampos de datos fiscales proporcionados por integraciones fiscales
presentation_hintsobjectSugerencias de formato y renderizado
i18nobjectEtiquetas traducidas para plantillas incluidas y personalizadas

order

CampoTipoEjemplo / descripción
order.idnumber1234
order.numberstringNúmero de pedido visible para el cliente, p. ej. "10045"
order.currencystringCódigo de moneda ISO, p. ej. "USD"
order.customer_notestringNota del cliente/pedido
order.wc_statusstringSlug de estado sin procesar de WooCommerce, p. ej. "processing"
order.status_labelstringEtiqueta de estado localizada, incluidos estados personalizados
order.created_viastringOrigen/canal, p. ej. "woocommerce-pos"
order.needs_paymentbooleanIndica si se debe mostrar una sección de pago
order.payment_urlstringURL de pago del pedido cuando está disponible
order.createddate objectFecha de creación del pedido
order.paiddate objectFecha de pago, cadenas vacías cuando no se ha pagado
order.completeddate objectFecha de finalización, cadenas vacías cuando no se ha completado
order.printeddate objectMarca de tiempo de impresión/reimpresión en el momento del renderizado

store

CampoTipoEjemplo / descripción
store.idnumberID de la tienda, o ID histórico para tiendas eliminadas
store.namestringNombre visible de la tienda
store.address.address_1stringLínea 1 de la dirección
store.address.address_2stringLínea de suite/unidad
store.address.citystringCiudad/localidad
store.address.statestringEstado/región
store.address.postcodestringCódigo postal
store.address.countrystringCódigo de país ISO
store.address_linesarrayLíneas de dirección preformateadas; recomendado para la mayoría de las plantillas
store.tax_idsarrayIdentificadores fiscales estructurados; se recomienda iterar este array en lugar de utilizar un solo identificador fiscal
store.phonestringTeléfono de la tienda
store.emailstringCorreo electrónico de la tienda
store.logostring/nullURL o URI de datos del logotipo de la tienda
store.opening_hoursstring/nullTexto compacto de horario de apertura
store.opening_hours_verticalstring/nullBloque de horario de apertura en varias líneas
store.opening_hours_inlinestring/nullTexto de horario de apertura separado por comas
store.opening_hours_notesstring/nullNotas de texto libre sobre horario de apertura
store.personal_notesstring/nullNota personal o pie de recibo
store.policies_and_conditionsstring/nullTexto de reembolsos, devoluciones o condiciones
store.footer_imprintstring/nullPie de página legal

Objetos de identificación fiscal

store.tax_ids y customer.tax_ids contienen objetos con la misma estructura:

CampoTipoDescripción
typestringIdentificador como eu_vat, de_steuernummer, au_abn, br_cpf, us_ein u other
valuestringValor de la identificación fiscal a imprimir
countrystring/nullCódigo de país ISO cuando se conoce
labelstring/nullEtiqueta de visualización localizada, resuelta antes del renderizado

Ejemplo:

{{#store.tax_ids}}
{{label}}: {{value}}
{{/store.tax_ids}}

cashier

CampoTipoEjemplo / descripción
cashier.idnumberID de usuario de WordPress, 0 cuando es desconocido
cashier.namestringNombre para mostrar del cajero

customer

CampoTipoEjemplo / descripción
customer.idnumber/nullID del cliente, o null para invitados
customer.namestringNombre para mostrar del cliente, o etiqueta de invitado
customer.billing_address.*objectCampos de dirección de facturación de WooCommerce
customer.shipping_address.*objectCampos de dirección de envío de WooCommerce
customer.tax_idsarrayIdentificadores fiscales del cliente capturados del pedido

Las claves de dirección comunes incluyen first_name, last_name, company, address_1, address_2, city, state, postcode, country, email y phone.

lines

Se recorre con {{#lines}}...{{/lines}}.

CampoTipoDescripción
keystringClave estable de línea / ID del artículo del pedido
skustringSKU del producto
namestringNombre del producto o de la línea mostrado
qtynumberCantidad vendida
qty_refundednumberCantidad reembolsada para esta línea
unit_subtotal / _incl / _exclnumberPrecio unitario antes de descuento
unit_price / _incl / _exclnumberPrecio unitario después de descuento
line_subtotal / _incl / _exclnumberSubtotal de línea antes de descuento
discounts / _incl / _exclnumberImporte del descuento como valor positivo
line_total / _incl / _exclnumberTotal final de línea
total_refundednumberTotal reembolsado para esta línea como valor positivo
taxesarrayFilas de impuestos por tasa para esta línea
metaarrayMetadatos del artículo del pedido como pares {key, value}
attributesarrayAtributos de producto/variación como pares {key, value}

Las variantes formateadas incluyen unit_subtotal_display, unit_price_display, line_subtotal_display, discounts_display, line_total_display y las variantes _display con impuestos incluidos/excluidos.

fees and shipping

Se recorren con {{#fees}}...{{/fees}} y {{#shipping}}...{{/shipping}}.

CampoTipoDescripción
labelstringEtiqueta de cargo o nombre del método de envío
method_idstringID del método de envío (solo envío)
total / _incl / _exclnumberTotales de visualización, con impuestos incluidos y sin impuestos
taxesarrayFilas de impuestos por tasa
metaarrayPares de metadatos {key, value}

Variantes formateadas: total_display, total_incl_display y total_excl_display.

discounts

Iterar con {{#discounts}}...{{/discounts}}.

CampoTipoDescripción
labelstringDescripción del cupón o código como respaldo
codestringCódigo de cupón
codesstringRespaldo heredado/de visualización para códigos concatenados
total / _incl / _exclnumberMonto del descuento como valor positivo

Variantes formateadas: total_display, total_incl_display y total_excl_display. Es posible agregar un signo de menos en la plantilla si se desea mostrar los descuentos como filas negativas.

totals

CampoTipoDescripción
totals.subtotal / _incl / _exclnumberSubtotal del pedido antes de descuentos
totals.discount_total / _incl / _exclnumberTotal de descuento del pedido como valor positivo
totals.tax_totalnumberMonto total de impuestos
totals.total / _incl / _exclnumberTotal general del pedido
totals.paid_totalnumberMonto pagado/aplicado
totals.change_totalnumberCambio devuelto al cliente
totals.refund_totalnumberTotal reembolsado como valor positivo
totals.net_totalnumbertotal - refund_total, limitado a cero
totals.total_qtynumberSuma de las cantidades de los artículos
totals.line_countnumberCantidad de filas de productos

Las variantes formateadas incluyen subtotal_display, discount_total_display, tax_total_display, total_display, paid_total_display, change_total_display, refund_total_display y net_total_display, además de variantes inclusivas/exclusivas cuando corresponda.

tax y tax_summary

Se utiliza tax para las condiciones del modo de visualización y tax_summary para las filas de tasas detalladas.

Campo de impuestoTipoDescripción
tax.displaystringincl o excl
tax.display_inclbooleanVerdadero cuando los precios se muestran con impuestos incluidos
tax.display_exclbooleanVerdadero cuando los precios se muestran sin impuestos
tax.breakdownstringhidden, single o itemized
tax.breakdown_hiddenbooleanVerdadero cuando las filas de impuestos deben ocultarse
tax.breakdown_singlebooleanVerdadero cuando se prefiere un total de impuestos único
tax.breakdown_itemizedbooleanVerdadero cuando se prefieren filas por tasa
has_tax_summarybooleanVerdadero cuando tax_summary contiene filas

Iterar tax_summary con {{#tax_summary}}...{{/tax_summary}}.

CampoTipoDescripción
codestringID/código de la tasa de impuesto
ratenumber/nullPorcentaje de la tasa cuando está resuelto
labelstringEtiqueta de la tasa impositiva
compoundbooleanIndica si la tasa es compuesta
taxable_amount_exclnumber/nullBase imponible sin impuestos
tax_amountnumberImpuesto recaudado
taxable_amount_inclnumber/nullBase imponible con impuestos

Variantes formateadas: taxable_amount_excl_display, tax_amount_display y taxable_amount_incl_display.

payments

Iterar con {{#payments}}...{{/payments}}.

CampoTipoDescripción
method_idstringIdentificador del método de pago
method_titlestringNombre visible del método de pago
amountnumberMonto aplicado al pedido
transaction_idstringID de transacción de la pasarela
tenderednumberMonto en efectivo entregado, cuando está presente
changenumberCambio en efectivo devuelto, cuando está presente

Variantes formateadas: amount_display, tendered_display y change_display.

refunds

Iterar con {{#refunds}}...{{/refunds}}. Los montos de reembolso son magnitudes positivas; las plantillas deciden si se antepone un signo negativo o se muestra un bloque separado de artículos devueltos.

CampoTipoDescripción
idnumberID del registro de reembolso
datedate objectFecha de creación del reembolso
amountnumberTotal del reembolso
subtotalnumberSubtotal de la línea reembolsada
tax_totalnumberImpuesto reembolsado
shipping_totalnumberMonto de envío reembolsado
shipping_taxnumberImpuesto de envío reembolsado
reasonstringMotivo del reembolso
refunded_by_idnumber/nullID del usuario que emitió el reembolso
refunded_by_namestringNombre de visualización del usuario que emitió el reembolso
refunded_paymentbooleanIndica si el pago fue reembolsado a través de la pasarela
destinationstringoriginal_method, cash o manual
gateway_idstringID de la pasarela utilizada para el reembolso
gateway_titlestringTítulo de visualización de la pasarela
processing_modestringModo de procesamiento del proveedor/manual
linesarrayFilas de productos reembolsados
feesarrayFilas de tarifas reembolsadas
shippingarrayFilas de envío reembolsadas

Los campos de línea de reembolso incluyen name, sku, qty, total, total_incl, total_excl, line_total, unit_total y taxes. Las filas de tarifas y envío de reembolso utilizan label, total, total_incl, total_excl y taxes. Se añaden variantes de visualización para los totales y los importes de impuestos.

fiscal

Los campos fiscales están vacíos de forma predeterminada y son completados por las integraciones fiscales o el enriquecimiento de instantáneas de WCPOS Pro.

CampoTipoDescripción
fiscal.immutable_idstringIdentificador fiscal inmutable
fiscal.receipt_numberstringNúmero de recibo fiscal
fiscal.sequencenumber/nullContador de secuencia
fiscal.hashstringValor de hash/firma
fiscal.qr_payloadstringContenido del QR para verificación fiscal
fiscal.tax_agency_codestringCódigo de la autoridad tributaria
fiscal.signed_atstringMarca de tiempo de la firma fiscal
fiscal.signature_excerptstringFirma truncada para visualización
fiscal.document_labelstringEtiqueta del documento, p. ej. Factura fiscal
fiscal.is_reprintbooleanIndica si esta renderización es una reimpresión
fiscal.reprint_countnumberCantidad de reimpresiones
fiscal.extra_fieldsarray/objectValores específicos de la jurisdicción

presentation_hints

Estos campos son consumidos principalmente por el renderizador y el formateador. Están disponibles para las plantillas cuando es necesario.

CampoTipoDescripción
presentation_hints.display_taxstringincl, excl, hidden, itemized o single
presentation_hints.prices_entered_with_taxbooleanIndica si los precios del catálogo incluyen impuestos
presentation_hints.rounding_modestringConfiguración de redondeo de impuestos de WooCommerce
presentation_hints.localestringConfiguración regional utilizada para el formato
presentation_hints.timezonestringZona horaria del recibo
presentation_hints.currency_positionstringPosición del símbolo de moneda
presentation_hints.currency_symbolstringSímbolo de moneda
presentation_hints.price_thousand_separatorstringSeparador de miles
presentation_hints.price_decimal_separatorstringSeparador decimal
presentation_hints.price_num_decimalsnumberCantidad de decimales
presentation_hints.price_display_suffixstringSufijo de visualización de precios de WooCommerce
presentation_hints.order_barcode_typestringTipo de código de barras utilizado por las plantillas de galería

i18n

Se recomienda utilizar etiquetas i18n en lugar de texto codificado de forma fija siempre que sea posible:

{{i18n.order}} #{{order.number}}
{{i18n.cashier}}: {{cashier.name}}
{{i18n.total}}: {{totals.total_display}}

Las claves comunes incluyen order, date, cashier, customer, item, sku, qty, unit_price, discount, subtotal, total, tax, paid, tendered, change, tax_summary, refunded, net_total, customer_note, thank_you_purchase, opening_hours, y las claves de etiqueta de identificación fiscal como store_tax_id_label_eu_vat y customer_tax_id_label_other. Las extensiones pueden agregar claves adicionales.