Preço por unidade de medida no carrinho (m², m, kg...)
Público: agências e times técnicos que mantêm o storefront de lojas Wake
Tipo de mudança: aditiva (não quebra integrações existentes)
Status: disponível em produção
1. O que mudou
O produto do carrinho no checkout agora expõe três campos GraphQL adicionais em checkout { products }:
multiplicationFactor: Decimal!— fator de conversão do produto, com até 2 casas decimaisquantityWithMultiplicationFactor: Decimal!— quantidade convertida para a unidade de exibiçãounitPriceWithMultiplicationFactor: Decimal!— preço unitário convertido para a unidade de exibição
Eles permitem exibir no carrinho e no minicart a mesma unidade de medida usada no anúncio e na página de produto — por exemplo, "14,40 m² × R$ 34,72/m²" no lugar de "5 caixas × R$ 100,00".
Nada foi removido ou renomeado.
quantity,ajustedPriceetotalAdjustedPricecontinuam existindo, com o mesmo nome, tipo e valor de antes.
2. Para que serve
Produtos vendidos em embalagem fechada, mas anunciados por unidade de medida (m², metro linear, kg), exibiam no carrinho o preço da caixa enquanto o anúncio exibia o preço por unidade. O Google Merchant Center passou a validar o preço também durante a simulação da jornada de compra, e essa divergência gerava reprovação de anúncios. Os novos campos entregam ao tema os valores já convertidos, sem necessidade de cálculo ou manipulação de preço no JavaScript.
3. Como os valores são calculados
quantityWithMultiplicationFactor = quantity × multiplicationFactor
unitPriceWithMultiplicationFactor = ajustedPrice ÷ multiplicationFactor
Ambos são arredondados em 2 casas decimais.
Os campos são de exibição. Eles não alteram o valor cobrado: o total da linha, os totais do carrinho e o valor do pedido continuam baseados na unidade de venda.
Por conta do arredondamento,
quantityWithMultiplicationFactor × unitPriceWithMultiplicationFactorpode divergir alguns centavos do total da linha. Para exibir o total, use sempretotalAdjustedPrice.
4. Comportamento quando não há fator cadastrado
O fator vem do cadastro do produto. Quando o produto não possui fator, multiplicationFactor retorna 0, quantityWithMultiplicationFactor é igual a quantity e unitPriceWithMultiplicationFactor é igual a ajustedPrice.
Valores iguais a zero ou negativos são tratados como "sem multiplicador". Integrações existentes não mudam de comportamento.
Fatores menores que 1 também são suportados: a quantidade convertida diminui e o preço unitário convertido aumenta.
5. Onde o campo está disponível
Os campos estão acessíveis em checkout { products }. Não estão disponíveis em checkout { orders { products } } nem nos produtos de kit.
6. Como consultar
query {
checkout(checkoutId: "00000000-0000-0000-0000-000000000000") {
products {
productVariantId
name
quantity
ajustedPrice
totalAdjustedPrice
multiplicationFactor
quantityWithMultiplicationFactor
unitPriceWithMultiplicationFactor
}
}
}Resposta para uma caixa de piso que cobre 2,88 m², com 5 caixas a R$ 100,00:
{
"data": {
"checkout": {
"products": [
{
"productVariantId": 354848,
"name": "Piso Cerâmico 60x60",
"quantity": 5,
"ajustedPrice": 100.00,
"totalAdjustedPrice": 500.00,
"multiplicationFactor": 2.88,
"quantityWithMultiplicationFactor": 14.40,
"unitPriceWithMultiplicationFactor": 34.72
}
]
}
}
}7. O que a agência precisa fazer
- Confirmar com o lojista que o fator de conversão está cadastrado nos produtos vendidos por unidade de medida
- Incluir os três campos na query de checkout usada pelo tema
- Ajustar a exibição do item no carrinho e no minicart — mostrando a unidade de medida isoladamente ou junto do valor da embalagem, conforme a decisão do lojista
- Manter
totalAdjustedPricecomo fonte do total da linha - Remover eventuais cálculos ou manipulações de preço feitos por JavaScript no tema
- Validar com um produto sem fator cadastrado, garantindo que a exibição atual se mantém
Documentação de referência: https://wakecommerce.readme.io/docs/query-checkout#products

