Ir 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 generan a partir del mismo payload canónico de recibo. Se utilizan rutas de puntos Mustache como {{order.number}}, {{store.name}} y {{totals.total_display}}. Los arrays se representan con secciones:

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

El contrato canónico es generado 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 a partir de los datos locales y luego se actualizan con la respuesta del servidor cuando está disponible, por lo que las plantillas personalizadas deben utilizar los campos que se indican a continuación en lugar de los métodos PHP de pedido.

Reglas de representación

Campos de moneda

Los campos monetarios numéricos se conservan como números y el renderizador añade campos _display con formato adaptado a la configuración regional para la salida de la plantilla:

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 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, yearPartes individuales de la 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 para mostrar del cliente, direcciones e identificaciones fiscales
linesarregloLíneas de productos
feesarregloFilas de tarifas
shippingarregloFilas de envío
discountsarregloFilas de cupones/descuentos
totalsobjetoTotales del pedido, totales de pago, resumen de reembolsos y recuentos de artículos
taxobjetoIndicadores del modo de visualización de impuestos para guardas de sección
tax_summaryarregloFilas de resumen de impuestos por tasa
has_tax_summarybooleanoGuarda de conveniencia para tax_summary
paymentsarregloFilas de pago
refundsarregloRegistros de reembolso aplicados al pedido
fiscalobjetoCampos de datos fiscales completados por integraciones fiscales
presentation_hintsobjetoIndicaciones de formato y renderizado
i18nobjetoEtiquetas traducidas para plantillas incluidas y personalizadas

order

CampoTipoEjemplo / descripción
order.idnúmero1234
order.numbercadena de textoNúmero de pedido visible para el cliente, p. ej. "10045"
order.currencycadena de textoCódigo de moneda ISO, p. ej. "USD"
order.customer_notecadena de textoNota del cliente/pedido
order.wc_statuscadena de textoSlug de estado sin procesar de WooCommerce, p. ej. "processing"
order.status_labelcadena de textoEtiqueta de estado localizada, incluidos estados personalizados
order.created_viacadena de textoOrigen/canal, p. ej. "woocommerce-pos"
order.needs_paymentbooleanoIndica si se debe mostrar una sección de pago
order.payment_urlcadena de textoURL de pago del pedido cuando está disponible
order.createdobjeto de fechaFecha de creación del pedido
order.paidobjeto de fechaFecha de pago; cadenas vacías cuando no se ha pagado
order.completedobjeto de fechaFecha de finalización; cadenas vacías cuando no se ha completado
order.printedobjeto de fechaMarca de tiempo de impresión/reimpresión en el momento de renderizado

tienda

CampoTipoEjemplo / descripción
store.idnúmeroID de la tienda, o ID histórico para tiendas eliminadas
store.namecadenaNombre visible de la tienda
store.address.address_1cadenaLínea 1 de la dirección
store.address.address_2cadenaLínea de suite/unidad
store.address.citycadenaCiudad/localidad
store.address.statecadenaEstado/región
store.address.postcodecadenaCódigo postal
store.address.countrycadenaCódigo de país ISO
store.address_linesarregloLíneas de dirección preformateadas; recomendadas para la mayoría de las plantillas
store.tax_idsarregloIdentificadores fiscales estructurados; se recomienda iterar este campo en lugar de utilizar un único identificador fiscal
store.phonecadenaTeléfono de la tienda
store.emailcadenaCorreo electrónico de la tienda
store.logocadena/nuloURL o URI de datos del logotipo de la tienda
store.opening_hourscadena/nuloTexto compacto de horario de atención
store.opening_hours_verticalcadena/nuloBloque de horario de atención en varias líneas
store.opening_hours_inlinecadena/nuloTexto de horario de atención separado por comas
store.opening_hours_notescadena/nuloNotas de texto libre sobre el horario de atención
store.personal_notescadena/nuloNota personal o pie de recibo
store.policies_and_conditionscadena/nuloTexto de reembolsos, devoluciones o términos
store.footer_imprintcadena/nuloPie de página legal

Objetos de identificación fiscal

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

CampoTipoDescripción
typecadenaIdentificador como eu_vat, de_steuernummer, au_abn, br_cpf, us_ein u other
valuecadenaValor del ID fiscal para imprimir
countrycadena/nuloCódigo de país ISO cuando se conoce
labelcadena/nuloEtiqueta de visualización localizada, resuelta antes del renderizado

Ejemplo:

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

cajero

CampoTipoEjemplo / descripción
cashier.idnúmeroID de usuario de WordPress, 0 cuando se desconoce
cashier.namecadenaNombre de visualización del cajero

cliente

CampoTipoEjemplo / descripción
customer.idnúmero/nullID del cliente, o null para invitados
customer.namecadenaNombre visible del cliente, o etiqueta de invitado
customer.billing_address.*objetoCampos de dirección de facturación de WooCommerce
customer.shipping_address.*objetoCampos de dirección de envío de WooCommerce
customer.tax_idsarregloIdentificadores fiscales del cliente capturados del pedido

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

líneas

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

CampoTipoDescripción
keycadenaClave estable de línea / ID del artículo del pedido
skucadenaSKU del producto
namecadenaNombre visible del producto o de la línea
qtynúmeroCantidad vendida
qty_refundednúmeroCantidad reembolsada para esta línea
unit_subtotal / _incl / _exclnúmeroPrecio unitario antes de descuento
unit_price / _incl / _exclnúmeroPrecio unitario después de descuento
line_subtotal / _incl / _exclnúmeroSubtotal de línea antes de descuento
discounts / _incl / _exclnúmeroImporte de descuento como valor positivo
line_total / _incl / _exclnúmeroTotal final de línea
total_refundednúmeroTotal reembolsado para esta línea como valor positivo
taxesarregloFilas de impuestos por tasa para esta línea
metaarregloMetadatos del artículo del pedido como pares {key, value}
attributesarregloAtributos del 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 y sin impuestos incluidos.

tarifas y envío

Iterar con {{#fees}}...{{/fees}} y {{#shipping}}...{{/shipping}}.

CampoTipoDescripción
labelcadenaEtiqueta de tarifa o nombre del método de envío
method_idcadenaID del método de envío (solo envío)
total / _incl / _exclnúmeroTotales de visualización, con impuestos incluidos y sin impuestos
taxesarregloFilas de impuestos por tasa
metaarregloPares de metadatos {key, value}

Variantes formateadas: total_display, total_incl_display y total_excl_display.

descuentos

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

CampoTipoDescripción
labelcadenaDescripción del cupón o código como alternativa
codecadenaCódigo del cupón
codescadenaAlternativa heredada/de visualización para códigos concatenados
total / _incl / _exclnúmeroImporte del descuento como valor positivo

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

totales

CampoTipoDescripción
totals.subtotal / _incl / _exclnúmeroSubtotal del pedido antes de descuentos
totals.discount_total / _incl / _exclnúmeroTotal de descuentos del pedido como valor positivo
totals.tax_totalnúmeroImporte total de impuestos
totals.total / _incl / _exclnúmeroTotal general del pedido
totals.paid_totalnúmeroImporte pagado/aplicado
totals.change_totalnúmeroCambio devuelto al cliente
totals.refund_totalnúmeroTotal reembolsado como valor positivo
totals.net_totalnúmerototal - refund_total, limitado a cero
totals.total_qtynúmeroSuma de las cantidades de artículos de línea
totals.line_countnúmeroCantidad de filas de líneas de producto

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 con impuestos incluidos/excluidos 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.displaycadenaincl o excl
tax.display_inclbooleanoVerdadero cuando los precios se muestran con impuestos incluidos
tax.display_exclbooleanoVerdadero cuando los precios se muestran sin impuestos
tax.breakdowncadenahidden, single o itemized
tax.breakdown_hiddenbooleanoVerdadero cuando las filas de impuestos deben ocultarse
tax.breakdown_singlebooleanoVerdadero cuando se prefiere un total único de impuestos
tax.breakdown_itemizedbooleanoVerdadero cuando se prefieren filas por tasa
has_tax_summarybooleanoVerdadero cuando tax_summary contiene filas

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

CampoTipoDescripción
codecadenaID/código de la tasa impositiva
ratenúmero/nullPorcentaje de la tasa cuando está resuelto
labelcadenaEtiqueta de la tasa impositiva
compoundbooleanoIndica si la tasa es compuesta
taxable_amount_exclnúmero/nullBase imponible sin impuestos
tax_amountnúmeroImpuesto recaudado
taxable_amount_inclnúmero/nullBase imponible con impuesto incluido

Variantes formateadas: taxable_amount_excl_display, tax_amount_display y taxable_amount_incl_display.

pagos

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

CampoTipoDescripción
method_idcadenaIdentificador del método de pago
method_titlecadenaNombre visible del método de pago
amountnúmeroMonto aplicado al pedido
transaction_idcadenaID de transacción de la pasarela
tenderednúmeroMonto en efectivo entregado, cuando corresponde
changenúmeroCambio en efectivo devuelto, cuando corresponde

Variantes con formato: amount_display, tendered_display y change_display.

reembolsos

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

CampoTipoDescripción
idnúmeroID del registro de reembolso
dateobjeto de fechaFecha de creación del reembolso
amountnúmeroTotal del reembolso
subtotalnúmeroSubtotal de líneas reembolsadas
tax_totalnúmeroImpuesto reembolsado
shipping_totalnúmeroImporte de envío reembolsado
shipping_taxnúmeroImpuesto de envío reembolsado
reasoncadena de textoMotivo del reembolso
refunded_by_idnúmero/nuloID del usuario que emitió el reembolso
refunded_by_namecadenaNombre para mostrar del usuario que emitió el reembolso
refunded_paymentbooleanoIndica si el pago fue reembolsado a través de la pasarela
destinationcadenaoriginal_method, cash o manual
gateway_idcadenaID de la pasarela utilizada para el reembolso
gateway_titlecadenaTítulo visible de la pasarela
processing_modecadenaModo de procesamiento del proveedor/manual
linesarregloFilas de productos reembolsados
feesarregloFilas de tarifas reembolsadas
shippingarregloFilas 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 se completan mediante integraciones fiscales o el enriquecimiento de instantáneas de WCPOS Pro.

CampoTipoDescripción
fiscal.immutable_idcadena de textoIdentificador fiscal inmutable
fiscal.receipt_numbercadena de textoNúmero de recibo fiscal
fiscal.sequencenúmero/nuloContador de secuencia
fiscal.hashcadena de textoValor de hash/firma
fiscal.qr_payloadcadena de textoContenido QR para verificación fiscal
fiscal.tax_agency_codecadena de textoCódigo de la autoridad tributaria
fiscal.signed_atcadena de textoMarca de tiempo de la firma fiscal
fiscal.signature_excerptcadena de textoFirma truncada para visualización
fiscal.document_labelcadena de textoEtiqueta del documento, p. ej. Factura fiscal
fiscal.is_reprintbooleanoIndica si esta impresión es una reimpresión
fiscal.reprint_countnúmeroContador de reimpresiones
fiscal.extra_fieldsarreglo/objetoValores 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 sea necesario.

CampoTipoDescripción
presentation_hints.display_taxcadenaincl, excl, hidden, itemized o single
presentation_hints.prices_entered_with_taxbooleanoIndica si los precios del catálogo incluyen impuestos
presentation_hints.rounding_modecadenaConfiguración de redondeo de impuestos de WooCommerce
presentation_hints.localecadenaConfiguración regional utilizada para el formato
presentation_hints.timezonecadenaZona horaria del recibo
presentation_hints.currency_positioncadenaPosición del símbolo de moneda
presentation_hints.currency_symbolcadenaSímbolo de moneda
presentation_hints.price_thousand_separatorcadena de textoSeparador de miles
presentation_hints.price_decimal_separatorcadena de textoSeparador decimal
presentation_hints.price_num_decimalsnúmeroCantidad de decimales
presentation_hints.price_display_suffixcadena de textoSufijo de visualización de precio de WooCommerce
presentation_hints.order_barcode_typecadena de textoTipo de código de barras utilizado por las plantillas de galería

i18n

Se recomienda utilizar las etiquetas de i18n en lugar de texto fijo 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.