Pular para o conteúdo principal
Versão: 1.x

Referência de Dados do Recibo

Os modelos HTML sem lógica e os modelos XML térmicos do WCPOS são renderizados a partir do mesmo payload canônico de recibo. Utilize caminhos de ponto Mustache como {{order.number}}, {{store.name}} e {{totals.total_display}}. Arrays são renderizados com seções:

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

O contrato canônico é produzido pelo construtor de dados de recibo do WCPOS no servidor e espelhado pelo renderizador de recibos offline no aplicativo. Os recibos são abertos imediatamente a partir dos dados locais e, em seguida, atualizados com a resposta do servidor quando disponível. Portanto, modelos personalizados devem utilizar os campos abaixo em vez de métodos PHP de pedido.

Regras de renderização

Campos de moeda

Os campos monetários numéricos são preservados como números, e o renderizador adiciona campos _display com formatação de localidade para saída no modelo:

Campo numéricoCampo de exibição
totals.totaltotals.total_display
lines[].line_totallines[].line_total_display
payments[].amountpayments[].amount_display
tax_summary[].tax_amounttax_summary[].tax_amount_display

Prefira os campos _display ao imprimir recibos. Use os campos numéricos apenas para seções condicionais ou saída legível por máquina.

Campos com exibição de impostos

Vários campos possuem variantes com impostos inclusos e exclusos, além de um valor de conveniência para exibição. O valor de conveniência segue a configuração de exibição de impostos do carrinho da loja.

Campo de conveniênciaCampo com impostos inclusosCampo com impostos exclusos
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 data

Os campos de data são objetos com múltiplas variantes pré-formatadas. Isso evita a necessidade de formatação de datas dentro do Mustache.

CampoDescrição
datetime, date, timeStrings padrão de data/hora
datetime_short, datetime_long, datetime_fullFormatos combinados adaptados ao idioma
date_short, date_long, date_fullFormatos de data conforme o idioma
date_ymd, date_dmy, date_mdyFormatos de data com ordem fixa
weekday_short, weekday_longNomes dos dias da semana
day, month, month_short, month_long, yearPartes individuais da data

Objetos de data disponíveis: order.created, order.paid, order.completed, order.printed e refunds[].date. order.printed é atualizado no momento da renderização, o que é útil para reimpressões.

Seções de nível superior

SeçãoTipoDescrição
orderobjetoIdentificação do pedido, status, datas, observação e informações de URL de pagamento
storeobjetoIdentificação da loja, endereço, dados de contato, números fiscais, logotipo, horário de funcionamento e texto de rodapé
cashierobjetoUsuário que processou o pedido
customerobjetoNome de exibição do cliente, endereços e números fiscais
linesarrayItens de linha do produto
feesarrayLinhas de taxas
shippingarrayLinhas de frete
discountsarrayLinhas de cupom/desconto
totalsobjectTotais do pedido, totais de pagamento, resumo de reembolso e contagem de itens
taxobjectFlags de modo de exibição de imposto para controle de seções
tax_summaryarrayLinhas de resumo de imposto por alíquota
has_tax_summarybooleanGuard de conveniência para tax_summary
paymentsarrayLinhas de pagamento
refundsarrayRegistros de reembolso aplicados ao pedido
fiscalobjectCampos de snapshot fiscal preenchidos por integrações fiscais
presentation_hintsobjectDicas de formatação e renderização
i18nobjectRótulos traduzidos para templates inclusos e personalizados

order

CampoTipoExemplo / descrição
order.idnumber1234
order.numberstringNúmero do pedido exibido ao cliente, ex.: "10045"
order.currencystringCódigo de moeda ISO, ex.: "USD"
order.customer_notestringNota do cliente/pedido
order.wc_statusstringSlug bruto do status do WooCommerce, ex.: "processing"
order.status_labelstringRótulo de status localizado, incluindo status personalizados
order.created_viastringOrigem/canal, ex.: "woocommerce-pos"
order.needs_paymentbooleanSe a seção de pagamento deve ser exibida
order.payment_urlstringURL de pagamento do pedido, quando disponível
order.createddate objectData de criação do pedido
order.paiddate objectData de pagamento, strings vazias quando não pago
order.completeddate objectData de conclusão, strings vazias quando incompleto
order.printeddate objectCarimbo de data/hora de impressão/reimpressão no momento da renderização

loja

CampoTipoExemplo / descrição
store.idnumberID da loja, ou ID histórico para lojas excluídas
store.namestringNome de exibição da loja
store.address.address_1stringLinha 1 do endereço
store.address.address_2stringComplemento
store.address.citystringCidade/localidade
store.address.statestringEstado/região
store.address.postcodestringCódigo postal
store.address.countrystringCódigo ISO do país
store.address_linesarrayLinhas de endereço pré-formatadas; recomendado para a maioria dos templates
store.tax_idsarrayIDs fiscais estruturados da empresa; itere sobre este array em vez de usar um único ID fiscal
store.phonestringTelefone da loja
store.emailstringE-mail da loja
store.logostring/nullURL ou URI de dados do logotipo da loja
store.opening_hoursstring/nullTexto compacto de horário de funcionamento
store.opening_hours_verticalstring/nullBloco de horário de funcionamento em múltiplas linhas
store.opening_hours_inlinestring/nullTexto de horário de funcionamento separado por vírgulas
store.opening_hours_notesstring/nullObservações de horário de funcionamento em texto livre
store.personal_notesstring/nullNota pessoal/rodapé do recibo
store.policies_and_conditionsstring/nullTexto de reembolso, devoluções ou termos
store.footer_imprintstring/nullDados legais do rodapé

Objetos de identificação fiscal

store.tax_ids e customer.tax_ids contêm objetos com a mesma estrutura:

CampoTipoDescrição
typestringIdentificador como eu_vat, de_steuernummer, au_abn, br_cpf, us_ein ou other
valuestringValor da identificação fiscal a ser impresso
countrystring/nullCódigo ISO do país, quando disponível
labelstring/nullRótulo de exibição localizado, resolvido antes da renderização

Exemplo:

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

cashier

CampoTipoExemplo / descrição
cashier.idnumberID de usuário WordPress, 0 quando desconhecido
cashier.namestringNome de exibição do operador de caixa

customer

CampoTipoExemplo / descrição
customer.idnumber/nullID do cliente, ou null para visitantes
customer.namestringNome de exibição do cliente, ou rótulo de visitante
customer.billing_address.*objectCampos de endereço de cobrança do WooCommerce
customer.shipping_address.*objectCampos de endereço de entrega do WooCommerce
customer.tax_idsarrayIDs fiscais do cliente capturados do pedido

As chaves de endereço comuns incluem first_name, last_name, company, address_1, address_2, city, state, postcode, country, email e phone.

lines

Itere com {{#lines}}...{{/lines}}.

CampoTipoDescrição
keystringChave estável da linha / ID do item do pedido
skustringSKU do produto
namestringNome de exibição do produto ou da linha
qtynumberQuantidade vendida
qty_refundednumberQuantidade reembolsada para esta linha
unit_subtotal / _incl / _exclnumberPreço unitário antes do desconto
unit_price / _incl / _exclnumberPreço unitário após o desconto
line_subtotal / _incl / _exclnumberSubtotal da linha antes do desconto
discounts / _incl / _exclnumberValor do desconto como valor positivo
line_total / _incl / _exclnumberTotal final da linha
total_refundednumberTotal reembolsado para esta linha como valor positivo
taxesarrayLinhas de imposto por alíquota para esta linha
metaarrayMetadados do item do pedido como pares {key, value}
attributesarrayAtributos do produto/variação como pares {key, value}

As variantes formatadas incluem unit_subtotal_display, unit_price_display, line_subtotal_display, discounts_display, line_total_display e variantes _display inclusivas/exclusivas.

taxas e frete

Itere com {{#fees}}...{{/fees}} e {{#shipping}}...{{/shipping}}.

CampoTipoDescrição
labelstringRótulo da taxa ou nome do método de envio
method_idstringID do método de envio (somente envio)
total / _incl / _exclnumberTotais para exibição, com impostos inclusos e com impostos exclusos
taxesarrayLinhas de imposto por alíquota
metaarrayPares de metadados {key, value}

Variantes formatadas: total_display, total_incl_display e total_excl_display.

descontos

Itere com {{#discounts}}...{{/discounts}}.

CampoTipoDescrição
labelstringDescrição do cupom ou código como fallback
codestringCódigo do cupom
codesstringFallback legado/exibição para códigos concatenados
total / _incl / _exclnumberValor do desconto como valor positivo

Variantes formatadas: total_display, total_incl_display e total_excl_display. Adicione seu próprio sinal de menos no template se quiser que os descontos sejam exibidos como linhas negativas.

totais

CampoTipoDescrição
totals.subtotal / _incl / _exclnumberSubtotal do pedido antes dos descontos
totals.discount_total / _incl / _exclnumberTotal de descontos do pedido como valor positivo
totals.tax_totalnumberValor total de impostos
totals.total / _incl / _exclnumberTotal geral do pedido
totals.paid_totalnumberValor pago/aplicado
totals.change_totalnumberTroco devolvido ao cliente
totals.refund_totalnumberTotal reembolsado como valor positivo
totals.net_totalnumbertotal - refund_total, limitado a zero
totals.total_qtynumberSoma das quantidades dos itens
totals.line_countnumberContagem de linhas de produto

As variantes formatadas incluem subtotal_display, discount_total_display, tax_total_display, total_display, paid_total_display, change_total_display, refund_total_display e net_total_display, além de variantes inclusivas/exclusivas quando aplicável.

tax e tax_summary

Use tax para condições de modo de exibição e tax_summary para linhas detalhadas por alíquota.

Campo de impostoTipoDescrição
tax.displaystringincl ou excl
tax.display_inclbooleanVerdadeiro quando os preços são exibidos com imposto incluso
tax.display_exclbooleanVerdadeiro quando os preços são exibidos sem imposto
tax.breakdownstringhidden, single ou itemized
tax.breakdown_hiddenbooleanVerdadeiro quando as linhas de imposto devem ser ocultadas
tax.breakdown_singlebooleanVerdadeiro quando um total único de imposto é preferido
tax.breakdown_itemizedbooleanVerdadeiro quando linhas por alíquota são preferidas
has_tax_summarybooleanVerdadeiro quando tax_summary contém linhas

Itere tax_summary com {{#tax_summary}}...{{/tax_summary}}.

CampoTipoDescrição
codestringID/código da alíquota de imposto
ratenumber/nullPercentual da alíquota quando resolvido
labelstringRótulo da alíquota de imposto
compoundbooleanSe a alíquota é composta
taxable_amount_exclnumber/nullBase tributável excluindo imposto
tax_amountnumberImposto cobrado
taxable_amount_inclnumber/nullBase tributável incluindo imposto

Variantes formatadas: taxable_amount_excl_display, tax_amount_display e taxable_amount_incl_display.

payments

Itere com {{#payments}}...{{/payments}}.

CampoTipoDescrição
method_idstringIdentificador do método de pagamento
method_titlestringTítulo de exibição do método de pagamento
amountnumberValor aplicado ao pedido
transaction_idstringID da transação do gateway
tenderednumberValor em dinheiro entregue, quando presente
changenumberTroco devolvido, quando presente

Variantes formatadas: amount_display, tendered_display e change_display.

reembolsos

Itere com {{#refunds}}...{{/refunds}}. Os valores de reembolso são magnitudes positivas; os templates decidem se devem adicionar um sinal de menos ou renderizar um bloco separado de itens devolvidos.

CampoTipoDescrição
idnumberID do registro de reembolso
datedate objectData de criação do reembolso
amountnumberTotal do reembolso
subtotalnumberSubtotal da linha reembolsada
tax_totalnumberImposto reembolsado
shipping_totalnumberValor de frete reembolsado
shipping_taxnumberImposto de frete reembolsado
reasonstringMotivo do reembolso
refunded_by_idnumber/nullID do usuário que emitiu o reembolso
refunded_by_namestringNome de exibição do usuário que emitiu o reembolso
refunded_paymentbooleanSe o pagamento foi reembolsado pelo gateway
destinationstringoriginal_method, cash ou manual
gateway_idstringID do gateway utilizado para o reembolso
gateway_titlestringTítulo de exibição do gateway
processing_modestringModo de processamento do provedor/manual
linesarrayLinhas de produtos reembolsados
feesarrayLinhas de taxas reembolsadas
shippingarrayLinhas de frete reembolsadas

Os campos de linha de reembolso incluem name, sku, qty, total, total_incl, total_excl, line_total, unit_total e taxes. As linhas de taxas e frete de reembolso utilizam label, total, total_incl, total_excl e taxes. Variantes de exibição são adicionadas para totais e valores de impostos.

fiscal

Os campos fiscais são vazios por padrão e preenchidos por integrações fiscais ou pelo enriquecimento de snapshot do WCPOS Pro.

CampoTipoDescrição
fiscal.immutable_idstringIdentificador fiscal imutável
fiscal.receipt_numberstringNúmero do recibo fiscal
fiscal.sequencenumber/nullContador de sequência
fiscal.hashstringValor de hash/assinatura
fiscal.qr_payloadstringPayload QR para verificação fiscal
fiscal.tax_agency_codestringCódigo da autoridade fiscal
fiscal.signed_atstringCarimbo de data/hora da assinatura fiscal
fiscal.signature_excerptstringAssinatura truncada para exibição
fiscal.document_labelstringRótulo do documento, ex.: Nota Fiscal
fiscal.is_reprintbooleanSe esta renderização é uma reimpressão
fiscal.reprint_countnumberContagem de reimpressões
fiscal.extra_fieldsarray/objectValores específicos da jurisdição

presentation_hints

Esses campos são consumidos principalmente pelo renderizador e formatador. Eles estão disponíveis para os templates quando necessário.

CampoTipoDescrição
presentation_hints.display_taxstringincl, excl, hidden, itemized ou single
presentation_hints.prices_entered_with_taxbooleanSe os preços do catálogo incluem impostos
presentation_hints.rounding_modestringConfiguração de arredondamento de impostos do WooCommerce
presentation_hints.localestringLocalidade utilizada para formatação
presentation_hints.timezonestringFuso horário do recibo
presentation_hints.currency_positionstringPosição do símbolo da moeda
presentation_hints.currency_symbolstringSímbolo da moeda
presentation_hints.price_thousand_separatorstringSeparador de milhares
presentation_hints.price_decimal_separatorstringSeparador decimal
presentation_hints.price_num_decimalsnumberCasas decimais
presentation_hints.price_display_suffixstringSufixo de exibição de preço do WooCommerce
presentation_hints.order_barcode_typestringTipo de código de barras utilizado pelos modelos de galeria

i18n

Utilize rótulos i18n em vez de codificar texto diretamente sempre que possível:

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

As chaves comuns incluem 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, e as chaves de rótulo de ID fiscal como store_tax_id_label_eu_vat e customer_tax_id_label_other. Chaves adicionais podem ser incluídas por extensões.