Checkout
A query checkout retorna informações de um carrinho específico e de seus produtos adicionados.
Requisição
Parâmetros
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
checkoutId | String | Sim | ID do carrinho |
customerAccessToken | String | Não | Token do cliente |
Campos principais
| Campo | Tipo | Explicação |
|---|---|---|
cep | Int | CEP de entrega vinculado ao checkout. |
checkingAccountActive | Boolean | Indica se há uma conta corrente ativa associada ao cliente. |
checkingAccountValue | Decimal | Valor disponível na conta corrente ativa (se houver). |
checkoutId | UUID | Identificador único do checkout. |
completed | Boolean | Indica se o pedido já foi finalizado. |
coupon | String | Código do cupom utilizado no carrinho, se houver. |
couponDiscount | Decimal | Valor de desconto aplicado via cupom. |
customer | CheckoutCustomer | Informações do cliente que está realizando o checkout. |
customizationValue | Decimal | Valor total de personalizações aplicadas aos produtos. |
discount | Decimal | Valor total de descontos no carrinho (exceto cupom). |
id | ID | ID interno do objeto checkout (diferente do checkoutId). |
kits | [CheckoutKit] | Lista de kits adicionados ao carrinho. |
login | String | Login ou e-mail do cliente logado. |
metadata | Metadata | Metadados adicionais sobre o checkout. |
minimumRequirements | MinimumRequirementsCheckoutNode | Regras mínimas para finalizar o pedido (ex: valor mínimo). |
orders | [CheckoutOrder] | Lista de pedidos já finalizados com base neste carrinho. |
partner | Partner | Objeto que contém informações sobre o parceiro vinculado ao carrinho. Nota: Este campo só é populado em carrinhos processados (que possuem produtos). |
paymentFees | Decimal | Taxas adicionais referentes à forma de pagamento selecionada. |
products | [CheckoutProductNode] | Lista de produtos adicionados ao carrinho. |
selectedAddress | CheckoutAddress | Endereço de entrega selecionado. |
selectedPaymentMethod | SelectedPaymentMethod | Método de pagamento selecionado. |
selectedPaymentMethods | [SelectedPaymentMethod] | Todos os métodos de pagamento disponíveis para seleção. |
selectedShipping | ShippingNode | Método de entrega escolhido. |
selectedShippingGroups | [CheckoutShippingQuoteGroupNode] | Grupos de cotação de frete disponíveis para o carrinho. |
shippingFee | Decimal | Valor do frete selecionado. |
subtotal | Decimal | Subtotal dos produtos antes dos descontos e frete. |
total | Decimal | Total final da compra, incluindo descontos e frete. |
totalDiscount | Decimal | Soma total de todos os descontos aplicados (cupom + promoções). |
updateDate | DateTime | Data da última atualização do carrinho. |
url | String | URL do checkout ativo, que pode ser usado para redirecionamento. |
Campos aninhados
customer
customerO campo customer representa os dados do cliente vinculados ao carrinho, quando ele está autenticado ou quando as informações são recuperadas via token de acesso.
Esse bloco é especialmente útil em lojas com programas de crédito, conta corrente ou regras diferenciadas por CNPJ/CPF, como em cenários B2B.
Estrutura do objeto CheckoutCustomer
CheckoutCustomer| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
checkingAccountBalance | Decimal | Não | Saldo disponível na conta corrente do cliente (caso haja esse recurso). |
cnpj | String | Não | CNPJ do cliente (se for pessoa jurídica). |
cpf | String | Não | CPF do cliente (se for pessoa física). |
creditLimit | Decimal | Sim | Limite total de crédito liberado para o cliente. |
creditLimitBalance | Decimal | Sim | Saldo disponível dentro do limite de crédito. |
customerId | Long | Sim | ID interno do cliente na base da plataforma. |
customerName | String | Não | Nome completo do cliente. |
email | String | Não | Endereço de e-mail associado à conta do cliente. |
phoneNumber | String | Não | Número de telefone cadastrado pelo cliente. |
AtençãoPara que essas informações sejam retornadas, o parâmetro
customerAccessTokenprecisa ser fornecido na chamada da query.
kits
kitsA propriedade kits representa a lista de kits de produtos adicionados ao carrinho. Um kit é um agrupamento de SKUs vendidos juntos com regras específicas de composição, preço e exibição.
| Campo | Tipo | Descrição |
|---|---|---|
ajustedPrice | Decimal | Valor final ajustado do kit, considerando descontos e personalizações. |
alias | String | Apelido ou slug do kit, utilizado geralmente na URL. |
imageUrl | String | URL da imagem principal representando o kit. |
kitGroupId | String | Identificador do grupo de kits ao qual esse kit pertence. |
kitId | Long | Identificador único do kit. |
listPrice | Decimal | Preço de tabela do kit (sem descontos). |
name | String | Nome do kit. |
price | Decimal | Preço base aplicado ao kit (pode ou não incluir descontos). |
products | [CheckoutProductNode] | Lista de produtos que compõem o kit. |
quantity | Int | Quantidade total do kit adicionada ao carrinho. |
totalAdjustedPrice | Decimal | Soma ajustada dos valores dos kits no carrinho. |
totalListPrice | Decimal | Soma do preço de tabela para todas as unidades do kit no carrinho. |
Produtos dentro de um kit
Cada produto presente em um kit segue a mesma estrutura de um produto avulso no carrinho, usando o tipo CheckoutProductNode. Para evitar repetição aqui, a documentação completa desse tipo está detalhada na seção de products
metadata
metadata A propriedade metadata permite armazenar e recuperar informações customizadas associadas ao checkout. É uma estrutura flexível composta por pares chave-valor (key e value), usada para extensões específicas da loja ou integrações com sistemas externos.
Útil para extensões como: campanhas, flags de origem de tráfego, identificadores de sistemas externos, preferências do usuário, entre outros.
| Campo | Tipo | Descrição |
|---|---|---|
key | String | Nome ou identificador da informação customizada. |
value | String | Valor correspondente à chave, geralmente em texto plano. |
minimumRequirements
minimumRequirementsA propriedade minimumRequirements define os critérios mínimos para que o checkout possa ser finalizado, como valor mínimo de compra ou quantidade mínima de itens no carrinho.
Esse campo é útil tanto para validações de frontend quanto para mensagens contextuais ao usuário, em experiências B2B ou com regras promocionais.
| Campo | Tipo | Descrição |
|---|---|---|
isMinimumOrderValueReached | Boolean | Indica se o valor mínimo de pedido foi atingido. |
isMinimumProductQuantityReached | Boolean | Indica se a quantidade mínima de produtos foi atingida. |
minimumOrderValue | Decimal | Valor mínimo necessário para finalizar o pedido. |
minimumProductQuantity | Int | Quantidade mínima de produtos exigida no carrinho. |
minimumProductQuantityMessage | String | Mensagem explicativa da regra de quantidade mínima. |
Caso as regras não sejam atingidas, os campos booleanos retornarão false, permitindo que o frontend bloqueie a finalização ou exiba uma mensagem personalizada.
orders
ordersA propriedade orders retorna os pedidos já finalizados que se originaram a partir do carrinho em questão (checkout). Isso ocorre quando o cliente conclui o pagamento e a plataforma gera os pedidos oficiais com dados como valores, status, entrega, produtos e kits.
Essa informação é útil para:
- Exibir resumos de pedidos pós-compra.
- Validar se houve sucesso na finalização.
- Acompanhar entregas ou divergências com o pedido original.
| Campo | Tipo | Descrição |
|---|---|---|
adjustments | [CheckoutOrderAdjustment] | Ajustes aplicados no pedido, como descontos promocionais ou cupons. |
date | DateTime | Data de criação do pedido. |
delivery | CheckoutOrderDelivery | Dados de entrega associados ao pedido. |
discountValue | Decimal | Valor total de descontos aplicados no pedido. |
dispatchTimeText | String | Texto com estimativa de tempo de despacho. |
interestValue | Decimal | Valor total de juros aplicado (parcelamento). |
kits | [CheckoutOrderKitNode] | Lista de kits incluídos no pedido (detalhado abaixo). |
orderId | Long | Identificador único do pedido. |
orderStatus | OrderStatus | Status técnico do pedido (ex: CANCELADO, PROCESSANDO). |
orderStatusCustomLabel | String | Permite a exibição de label customizada no minha conta |
orderStatusDisplay | String | Status do pedido formatado para exibição. |
payment | CheckoutOrderPayment | Forma de pagamento utilizada (cartão, boleto etc). |
payments | [CheckoutOrderPayment] | Lista de pagamentos (caso múltiplos métodos tenham sido usados). |
products | [CheckoutOrderProduct] | Produtos avulsos do pedido |
shippingValue | Decimal | Valor de frete cobrado. |
totalValue | Decimal | Valor total do pedido (produtos + frete - descontos + juros). |
Subcampo: kits (dentro de orders)
A propriedade kits dentro de orders representa os kits que foram efetivamente vendidos como parte do pedido gerado a partir do carrinho. Essa estrutura não deve ser confundida com os kits no carrinho (campo checkout.kits), pois ela reflete o que foi fechado no pedido e permite exibir os produtos que compõe o kit de forma agrupada
| Campo | Tipo | Descrição |
|---|---|---|
alias | String | Slug do kit, usado para URLs ou identificação amigável. |
imageUrl | String | URL da imagem principal do kit. |
kitGroupId | String | Identificador do grupo de kits. |
kitId | Long | Identificador interno do kit. |
name | String | Nome do kit exibido no pedido. |
products | [CheckoutOrderProduct] | Lista de produtos que compõem esse kit no pedido. |
quantity | Int | Quantidade de kits comprados. |
value | Decimal | Valor total pago por esse kit (com ou sem descontos). |
Os produtos listados dentro do kit são do tipoCheckoutOrderProducte possuem sua própria documentação (ver seção orders.products).
query Checkout($checkoutId: String!) {
checkout(checkoutId: $checkoutId) {
checkoutId
orders {
products {
name
productVariantId
kit
quantity
metadata {
key
value
}
}
kits {
name
kitId
kitGroupId
quantity
value
products {
name
productVariantId
quantity
}
}
}
}
}
Mostrar resposta
{
"data": {
"checkout": {
"checkoutId": "chk_12345",
"orders": {
"products": [
{
"name": "Matcha Cerimonial Premium — 30g",
"productVariantId": 354312,
"kit": true,
"quantity": 1,
"metadata": [
{
"key": "_kitId",
"value": "1082"
},
{
"key": "_kitGroupId",
"value": "8yGhK20LmDlY0Gsdgv/xRQ=="
},
{
"key": "_kitVariantQuantity",
"value": "1"
}
]
},
{
"name": "Matcha Cerimonial Premium — 30g",
"productVariantId": 354312,
"kit": false,
"quantity": 1,
"metadata": []
}
],
"kits": [
{
"name": "Kit de Matcha Premium",
"kitId": "1082",
"kitGroupId": "8yGhK20LmDlY0Gsdgv/xRQ==",
"quantity": 1,
"value": 99.90,
"products": [
{
"name": "Matcha Cerimonial Premium — 30g",
"productVariantId": 354312,
"quantity": 1
}
]
}
]
}
}
}
}
Observação:Para identificar se um produto dentro da query
checkout.productspertence a um kit, você pode verificar:Campo
kit: true
Subcampo: delivery (dentro de orders)
delivery (dentro de orders)Contém as informações detalhadas sobre a entrega ou retirada do pedido.
Inclui dados como endereço, custo, prazos, nome do método de entrega e o grupo logístico (shippingGroup) ao qual essa opção pertence.
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
address | CheckoutOrderAddress | Sim | Endereço detalhado da entrega. |
cost | Decimal | Sim | Valor do frete. |
deliveryTime | Int | Não | Tempo estimado de entrega em minutos. |
deliveryTimeInHours | Int | Não | Tempo estimado de entrega em horas. |
name | String | Não | Nome/descrição do tipo de entrega. |
shippingGroup | CheckoutOrderDeliveryShippingGroup | Não | Grupo logístico ao qual esta opção de entrega pertence. |
Observação: se o sistema/logística da loja não utiliza agrupamentos de envio,
shippingGrouppoderá retornar null.
Subcampo: productCategories (dentro de orders > products)
productCategories (dentro de orders > products)Árvore de categorias do produto do pedido. Disponível em orders.products e em orders.kits.products. Retorna uma lista de ProductCategory, o mesmo tipo devolvido pela query products.
| Campo | Tipo | Descrição |
|---|---|---|
| id | Int | Id da categoria. |
| name | String | Nome da categoria. |
| url | String | URL (alias de hotsite) da categoria. |
| active | Boolean | Indica se a categoria está ativa. |
| main | Boolean | Indica se é a categoria principal do produto. |
| hierarchy | String | Caminho hierárquico da categoria, em texto. |
| googleCategories | String | Categoria no formato Google. |
Retorna vazio ou null quando o produto não é encontrado no catálogo no momento da consulta — sem gerar erro na query.
partner
partner| Campo | Tipo | Descição |
|---|---|---|
partnerId | Int | Identificador único do parceiro vinculado ao checkout |
Informação sobre o Vínculo de ParceiroO campo
partnerIdfoi implementado para garantir que, em cenários de compartilhamento de carrinho, o front-end consiga identificar qual parceiro deve ser exibido, independentemente do que está gravado nos cookies do navegador do usuário.Importante: Este campo retornará null caso o carrinho esteja vazio. Ele é populado apenas após a adição do primeiro produto (carrinho processado).
Exemplo de Requisição:
query {
checkout(checkoutId: "ID_DO_CARRINHO") {
checkoutId
completed
total
products {
name
productId
}
# Nova funcionalidade: consulta de parceiro vinculado
partner {
partnerId
}
}
}Exemplo de resposta:
{
"data": {
"checkout": {
"checkoutId": "e89a41c-9387-452f-ab83-8b6218f29e8b",
"completed": false,
"total": 159.8,
"partner": {
"partnerId": 52903
}
}
}
}
products
productsO campo products retorna a lista de itens presentes no checkout. Cada item representa um produto adicionado ao carrinho, com informações de preço, quantidade, atributos selecionados, seller, prazo de envio e outros dados necessários para cálculo e exibição do pedido.
Cada item dessa lista representa um produto individual dentro do carrinho/checkout.
| Campo | Tipo | Descrição |
|---|---|---|
| adjustments | [CheckoutProductAdjustmentNode] | Lista de ajustes aplicados ao produto (ex.: promoções, descontos, regras comerciais). |
| adjustedPrice | Decimal! | Preço unitário final do produto após todos os ajustes. |
| attributeSelections | AttributeSelection | Atributos selecionados para o produto (por exemplo: cor, tamanho). |
| brand | String | Marca do produto. |
| cartGiftId | Long! | Identificador da regra de brinde, quando o item é adicionado como presente. |
| category | String | Categoria principal do produto. |
| customization | CheckoutProductCustomizationNode | Informações de customização do produto, quando houver (ex.: personalização). |
| gift | Boolean! | Indica se o item é um brinde (true) ou não (false). |
| giftOptions | [GiftOption!]! | Lista de opções de brinde que o consumidor pode escolher para esta linha, declaradas pela promoção. Retorna vazia quando a linha não é brinde ou quando a promoção não oferece troca de produto. Ver giftOptions. |
| googleCategory | String | Categoria usada para integrações com Google (ex.: Google Shopping). |
| imageUrl | String | URL da imagem principal do produto. |
| informations | [String] | Lista de informações adicionais exibidas junto ao produto. |
| installmentFee | Boolean! | Indica se existe taxa adicional por parcelamento para este item. |
| installmentValue | Decimal! | Valor da taxa de parcelamento aplicada ao produto, quando houver. |
| kit | Boolean! | Indica se o produto faz parte de um kit. |
| listPrice | Decimal! | Preço de lista do produto (antes de descontos/regra comercial). |
| metadata | [Metadata] | Metadados associados ao produto no checkout. |
| name | String | Nome do produto. |
| numberOfInstallments | Int! | Número de parcelas utilizado no pagamento deste item. |
| price | Decimal! | Preço unitário base considerado no checkout (pode já incluir alguma regra de preço). |
| productAttributes | [CheckoutProductAttributeNode] | Lista de atributos técnicos/comerciais do produto. |
| productId | Long! | Identificador do produto na plataforma. |
| productVariantId | Long! | Identificador da variante (SKU) do produto. |
| quantity | Int! | Quantidade do produto adicionada ao checkout. |
| regularPrice | Decimal! | Novo campo – preço “regular” do SKU, usado como referência antes da aplicação de promoções, cupons ou ajustes específicos. |
| seller | CheckoutProductSellerNode | Informações do seller responsável pela venda do produto. |
| shippingDeadline | CheckoutShippingDeadlineNode | Prazo estimado para envio do produto. |
| sku | String | Código SKU do produto. |
| subscription | CheckoutProductSubscription | Dados de assinatura quando o produto é recorrente. |
| totalAdjustedPrice | Decimal! | Valor total do produto no pedido após ajustes (adjustedPrice × quantity). |
| multiplicationFactor | Decimal! | Fator multiplicador de preço do item, com até 2 casas decimais. Usado quando a unidade vendida cobre mais que a unidquantityWithMultiplicationFactorade exibida — por exemplo, uma caixa de piso que cobre 2,88 m² mas cujo preço é anunciado por m². Retorna 0 quando o produto não possui fator cadastrado. |
| quantityWithMultiplicationFactor | Decimal! | Quantidade convertida para a unidade de exibição (quantity × multiplicationFactor). É igual a quantity quando não há fator multiplicador. |
| unitPriceWithMultiplicationFactor | Decimal! | Preço unitário convertido para a unidade de exibição (ajustedPrice ÷ multiplicationFactor). É igual a ajustedPrice quando não há fator multiplicador. |
| totalListPrice | Decimal! | Valor total com base no preço de lista (listPrice × quantity)/ "preço de" |
| url | String | URL do produto na loja, quando disponível. |
Fator multiplicador (venda por unidade de medida)Os campos
multiplicationFactor,quantityWithMultiplicationFactoreunitPriceWithMultiplicationFactorexistem para lojas que vendem produtos fechados numa embalagem, mas anunciam o preço por unidade de medida (m², m linear, kg). Eles não alteram o valor cobrado:quantity,ajustedPrice,totalAdjustedPricee os totais do carrinho permanecem baseados na unidade de venda.Produtos sem fator cadastrado retornam
multiplicationFactor = 0, e os dois campos calculados repetemquantityeajustedPrice. Nenhuma alteração é necessária em integrações existentes.
Os campos calculados são arredondados em 2 casas decimais. Para exibir o total da linha, use sempretotalAdjustedPrice— a multiplicação dos dois campos convertidos pode divergir em centavos.
O fator é definido no cadastro do produto. Se vier 0 para um produto que deveria ter fator, verifique o cadastro.
giftOptions (dentro de products)
giftOptions (dentro de products)O campo giftOptions expõe, em cada linha de brinde do carrinho, a lista de produtos que a promoção declarou como opção de brinde. É o que permite montar no template a vitrine "escolha 1 de 5", em que o consumidor troca o produto recebido como brinde.
O campo é aditivo: nenhuma integração existente precisa ser alterada. Linhas que não são brinde e brindes sem opções de troca continuam retornando lista vazia.
O Storefront API já resolve o catálogo de cada opção (nome, imagem, SKU e URL) e filtra as indisponíveis, portanto não é necessária nenhuma chamada extra para renderizar a vitrine.
Parâmetros
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
width | Int | Não | Largura, em pixels, da imagem retornada em imageUrl. Quando omitido, usa a largura padrão de imagem da loja. |
height | Int | Não | Altura, em pixels, da imagem retornada em imageUrl. Quando omitido, usa a altura padrão de imagem da loja. |
Estrutura do objeto GiftOption
GiftOption| Campo | Tipo | Descrição |
|---|---|---|
| productId | Long! | Identificador do produto da opção. |
| productVariantId | Long | Identificador da variante (SKU) da opção. Quando preenchido, a escolha pode ser efetivada direto. Quando null, ainda resta o consumidor escolher a variante antes de efetivar a escolha do brinde. |
| selected | Boolean! | Indica se esta é a opção atualmente vinculada à linha de brinde. No máximo uma opção da lista retorna true. |
| name | String | Nome do produto da opção. Quando a promoção travou uma variante específica, retorna o nome da variante. |
| imageUrl | String | URL da imagem principal da opção, nas dimensões informadas em width/height. Retorna a imagem padrão de "produto sem foto" quando a opção não possui imagem cadastrada. |
| sku | String | Código SKU da opção. |
| url | String | URL do produto da opção na loja, quando disponível. |
Regras de retorno
- Quando a lista vem vazia. A linha não é brinde (
gift: false), ou a promoção não declarou opções de troca para aquele brinde. Nesse caso o brinde segue o comportamento atual, sem vitrine de escolha. - Quando renderizar a vitrine. Só faz sentido oferecer troca quando há mais de uma opção. Com
giftOptionsde tamanho 1, o template não deve renderizar seletor de produto. - Opções indisponíveis são filtradas pela própria API. Não existe flag de disponibilidade: opção sem estoque simplesmente não aparece na lista, porque não há valor em oferecer um brinde que não pode ser concedido. A única exceção é a opção com
selected: true, que nunca é filtrada — ela descreve o brinde que já está no carrinho. - Quando
productVariantIdvem preenchido. A variante está resolvida e a escolha pode ser efetivada direto. Isso acontece quando a promoção travou uma variante específica, quando o produto possui variante única, ou quando apenas uma variante do produto está disponível. - Quando
productVariantIdvemnull. O produto possui duas ou mais variantes disponíveis e o consumidor precisa escolher qual delas quer receber antes de efetivar a escolha do brinde. - Escolha de mais de um brinde ("escolha 2 de 5"). A promoção adiciona ao carrinho uma linha de brinde por unidade a que o consumidor tem direito, e cada linha traz o mesmo conjunto de opções. Não há contagem a validar no template: para exibir "escolha 2 de 5", agrupe visualmente as linhas de brinde da mesma promoção.
Como efetivar a escolha
A escolha é gravada com a mutation CheckoutGiftVariantSelection, informando o cartGiftId da linha de brinde e o productVariantId da opção escolhida. Após a mutation, o carrinho é reprocessado e a linha passa a refletir o brinde escolhido.
- Se a opção escolhida tem
productVariantIdpreenchido, chame a mutation direto com esse valor. - Se a opção escolhida tem
productVariantIdigual anull, consulte antes as variantes daquele produto na query products, emattributeSelections, usandoincludeParentIdVariants: false, e chame a mutation com a variante que o consumidor selecionar.
O campo attributeSelections da própria linha de brinde continua funcionando como antes e é independente do giftOptions: giftOptions escolhe qual produto o consumidor recebe, enquanto attributeSelections refina qual variante do produto que já está vinculado à linha. Os dois podem coexistir na mesma linha.
Pré-requisitos para o campo retornar opçõesPara que
giftOptionsretorne uma lista com opções é necessário que a promoção esteja cadastrada com mais de um produto contemplado como brinde e que a ação de escolha esteja habilitada no cadastro da promoção. Promoções de brinde já existentes, com um único produto contemplado, continuam retornando lista vazia — sem qualquer alteração de comportamento.O
cartGiftIdé obrigatório para efetivar a escolha, portanto sempre consulte-o junto degiftOptionsna mesma query.
Exemplos
Neste exemplo são pedidas informações de um carrinho específico e de seus produtos:
query {
checkout(checkoutId:"d0e47846-d2a8-45e0-b51f-f25ee88446a3") {
checkoutId
url
products {
productId
name
price
quantity
productAttributes {
name
value
}
}
}
}Mostrar resposta
{
"checkout": {
"checkoutId": "d0e47846-d2a8-45e0-b51f-f25ee88446a3",
"url": "https://lojacss.checkout.fbits.store/d0e47846-d2a8-45e0-b51f-f25ee88446a3",
"products": [
{
"productId": 222725,
"name": "Anabela Camurça Animale",
"price": 279,
"quantity": 1,
"productAttributes": [
{
"name": "COR",
"value": "Rose"
},
{
"name": "Tamanho",
"value": "35"
}
]
}
]
}
}
}Informações de Seller no Produto do Checkout
Segue abaixo um exemplo que apresentará as informações do Seller no produto do checkout:
query {
checkout(checkoutId: "d0e47846-d2a8-45e0-b51f-f25ee8840000") {
checkoutId
products {
productId
name
seller {
distributionCenterId
sellerName
}
}
}
}Mostrar resposta
{
"checkout": {
"checkoutId": "d0e47846-d2a8-45e0-b51f-f25ee8840000",
"products": [
{
"productId": 222725,
"name": "Anabela Camurça Animale",
"seller": {
"distributionCenterId": "eyJFbnRpdHkiOiJEaXN0cmlidXRpb25DZW50ZXIiLCJJZCI60000",
"sellerName": "Depósito Três Estrelas"
}
},
{
"productId": 222765,
"name": "Anabela Animale",
"seller": {
"distributionCenterId": "eyJFbnRpdHkiOiJEaXN0cmlidXRpb25DZW50ZXIiLCJJZCI61111",
"sellerName": "Depósito Três Mares"
}
}
]
}
}Produto(s) com personalização no carrinho
Abaixo temos um exemplo, que retornará informações de produtos(s) com personalização em um carrinho:
query {
checkout(checkoutId: "969ca571-5d72-49ed-a172-c460f6c00000") {
checkoutId
products {
name
quantity
productVariantId
productId
customization {
id
values {
cost
name
value
}
}
}
}
}Mostrar resposta
{
"data": {
"checkout": {
"checkoutId": "969ca571-5d72-49ed-a172-c460f6c00000",
"products": [
{
"name": "Bola Adidas Euro Copa 2016",
"quantity": 1,
"productVariantId": 4567,
"productId": 282,
"customization": {
"id": "eyJQcm9kdXRvVmFyaWFudGVJZCI6NTQzOCwiRW50aXR5IjoiQ2hlY2tvdXRQcm9kdWN0SWQiLCJJZCI6MTYxMjUzMn0=",
"values": [
{
"cost": 5,
"name": "Nome",
"value": "teste"
}
]
}
},
{
"name": "Bola Adidas Euro Copa 2016",
"quantity": 1,
"productVariantId": 4567,
"productId": 282,
"customization": {
"id": "eyJQcm9kdXRvVmFyaWFudGVJZCI6NTQzOCwiRW50aXR5IjoiQ2hlY2tvdXRQcm9kdWN0SWQiLCJJZCI6MTYxMjUzMn0=",
"values": [
{
"cost": 5,
"name": "Nome",
"value": "teste"
}
]
}
}
]
}
}
}Informação de assinatura selecionada para produtos no carrinho
Abaixo temos um exemplo, que retornará as informações de assinatura selecionada e assinaturas disponíveis para o(s) produto(s) no carrinho:
query {
checkout(checkoutId: "4153a797-1731-4487-82bb-bc664d33a8c5") {
checkoutId
products {
name
quantity
subscription {
selected {
name
recurringDays
recurringTypeId
selected
subscriptionGroupDiscount
subscriptionGroupId
}
availableSubscriptions {
name
recurringDays
recurringTypeId
selected
subscriptionGroupDiscount
subscriptionGroupId
}
}
}
}
}Mostrar resposta
{
"data": {
"checkout": {
"checkoutId": "4153a797-1731-4487-82bb-bc664d33a8c5",
"products": [
{
"name": "Ração Guabi Natural para Gatos Adultos e Castrados Sabor Cordeiro e Aveia",
"quantity": 1,
"subscription": {
"selected": {
"name": "Mensal",
"recurringDays": 30,
"recurringTypeId": 484,
"selected": true,
"subscriptionGroupDiscount": 0,
"subscriptionGroupId": 377
},
"availableSubscriptions": [
{
"name": "Semanal",
"recurringDays": 7,
"recurringTypeId": 482,
"selected": false,
"subscriptionGroupDiscount": 0,
"subscriptionGroupId": 377
},
{
"name": "Mensal",
"recurringDays": 30,
"recurringTypeId": 484,
"selected": true,
"subscriptionGroupDiscount": 0,
"subscriptionGroupId": 377
},
{
"name": "2 Meses",
"recurringDays": 60,
"recurringTypeId": 485,
"selected": false,
"subscriptionGroupDiscount": 0,
"subscriptionGroupId": 377
},
{
"name": "3 Meses",
"recurringDays": 90,
"recurringTypeId": 486,
"selected": false,
"subscriptionGroupDiscount": 0,
"subscriptionGroupId": 377
},
{
"name": "6 Meses",
"recurringDays": 180,
"recurringTypeId": 489,
"selected": false,
"subscriptionGroupDiscount": 0,
"subscriptionGroupId": 377
}
]
}
},
{
"name": "Petisco Bombom Recheado Mastig para Cães 100g ",
"quantity": 1,
"subscription": {
"selected": {
"name": "Semanal",
"recurringDays": 7,
"recurringTypeId": 482,
"selected": true,
"subscriptionGroupDiscount": 0,
"subscriptionGroupId": 377
},
"availableSubscriptions": [
{
"name": "Semanal",
"recurringDays": 7,
"recurringTypeId": 482,
"selected": true,
"subscriptionGroupDiscount": 0,
"subscriptionGroupId": 377
},
{
"name": "Mensal",
"recurringDays": 30,
"recurringTypeId": 484,
"selected": false,
"subscriptionGroupDiscount": 0,
"subscriptionGroupId": 377
},
{
"name": "2 Meses",
"recurringDays": 60,
"recurringTypeId": 485,
"selected": false,
"subscriptionGroupDiscount": 0,
"subscriptionGroupId": 377
},
{
"name": "3 Meses",
"recurringDays": 90,
"recurringTypeId": 486,
"selected": false,
"subscriptionGroupDiscount": 0,
"subscriptionGroupId": 377
},
{
"name": "6 Meses",
"recurringDays": 180,
"recurringTypeId": 489,
"selected": false,
"subscriptionGroupDiscount": 0,
"subscriptionGroupId": 377
}
]
}
}
]
}
}
}Consulta de customizações disponíveis para produtos no checkout
Abaixo temos um exemplo, que retornará as informações de customizações em produtos direto do checkout:
query {
checkout(
checkoutId: "63c6b3fa-43be-4312-b1b9-bd445d0b0496"
customerAccessToken: "eyJQcm9kdXRvVmFyaWFudGVJZCI6MzQwLCJFbnRpdHkiOiJDaGVja291dFByb2R1Y3RJZCIsIklkIjoxNjEyNTI5fQ"
) {
products {
name
productVariantId
productId
totalAdjustedPrice
ajustedPrice
customization {
id
values {
cost
name
value
}
availableCustomizations {
id
name
customizationId
groupName
maxLength
order
type
values
cost
}
}
}
}
}Mostrar resposta
{
"data": {
"checkout": {
"products": [
{
"name": "Mochila Nike Classic",
"productVariantId": 256639,
"productId": 70129,
"totalAdjustedPrice": 229,
"ajustedPrice": 229,
"customization": {
"id": "eyJQcm9kdXRvVmFyaWFudGVJZCI6MjU2NjM5LCJFbnRpdHkiOiJDaGVja291dFByb2R1Y3RJZCIsIklkIjoxNzAyNjQxfQ==",
"values": [
{
"cost": 5,
"name": "Nome",
"value": "Teste"
},
{
"cost": 5,
"name": "Número",
"value": "1"
}
],
"availableCustomizations": [
{
"id": "eyJFbnRpdHkiOiJDdXN0b21pemF0aW9uIiwiSWQiOjM1fQ==",
"name": "Nome",
"customizationId": 35,
"groupName": "Gravação Nome",
"maxLength": 99,
"order": 1,
"type": "Texto Livre",
"values": [],
"cost": 5
},
{
"id": "eyJFbnRpdHkiOiJDdXN0b21pemF0aW9uIiwiSWQiOjEwMDM1fQ==",
"name": "Valor",
"customizationId": 10035,
"groupName": "Gravação Nome",
"maxLength": 99,
"order": 2,
"type": "Valores Predefinidos",
"values": [],
"cost": 5
},
{
"id": "eyJFbnRpdHkiOiJDdXN0b21pemF0aW9uIiwiSWQiOjEwMDM2fQ==",
"name": "Número",
"customizationId": 10036,
"groupName": "Gravação Nome",
"maxLength": 99,
"order": 3,
"type": "Número",
"values": [],
"cost": 5
}
]
}
}
]
}
}
}Consulta do saldo da conta corrente do usuário no carrinho
Abaixo temos um exemplo, de consulta de saldo de conta corrente de um usuário no carrinho:
query {
checkout(
checkoutId: "07716392-aef0-463e-bcaa-ff33381d0ece"
customerAccessToken: "Lk7kiuvKnSOZFwjOk/3C1Bb4FeNhYO5IgW3YM9VApudLrIL1w8dixR8A+SeMbzBXa5LDhJ+nxyhUElJzug+ELX1FbzvJ4d4LmaBKbUlIDfCKb2tLY6a99uCrcOadsXk7c2fWFawEYu9sFREE4/ZWJMwGoObt3kwhcBh9VkzgHiFsem+CIY2X+l5T6yidUKCcRUdnTht41geiLOMjOSNnPmqZvTRcowFLlGBDdXwAHXaflwMBZ1gN2XHt6Qwh+AiW"
) {
customer {
checkingAccountBalance
}
}
}Mostrar resposta
{
"data": {
"checkout": {
"customer": {
"checkingAccountBalance": 100
}
}
}
Consulta do valor debitado da conta corrente do usuário no carrinho
Abaixo temos um exemplo, de consulta do valor debitado da conta corrente de um usuário no carrinho
query {
checkout(
checkoutId: "07716392-aef0-463e-bcaa-ff33381d0ece"
customerAccessToken: "Lk7kiuvKnSOZFwjOk/3C1Bb4FeNhYO5IgW3YM9VApudLrIL1w8dixR8A+SeMbzBXa5LDhJ+nxyhUElJzug+ELX1FbzvJ4d4LmaBKbUlIDfCKb2tLY6a99uCrcOadsXk7c2fWFawEYu9sFREE4/ZWJMwGoObt3kwhcBh9VkzgHiFsem+CIY2X+l5T6yidUKCcRUdnTht41geiLOMjOSNnPmqZvTRcowFLlGBDdXwAHXaflwMBZ1gN2XHt6Qwh+AiW"
) {
products {
name
totalAdjustedPrice
ajustedPrice
}
orders {
adjustments {
name
type
value
}
}
checkingAccountValue
subtotal
total
}
}Mostrar resposta
{
"data": {
"checkout": {
"products": [
{
"name": "Tênis All Star Vermelho",
"totalAdjustedPrice": 229,
"ajustedPrice": 229
}
],
"orders": [],
"checkingAccountValue": -100,
"subtotal": 229,
"total": 129
}
}
}Informações de pagamento de cartão no checkout
Abaixo temos um exemplo, de consulta dos dados do cartão no checkout:
query {
checkout(checkoutId:"bebddb4a-3c7a-4492-854f-58aa02babf7c"){
orders{
payment{
name
card{
brand
installments
cardInterest
name
number
acquirerReturnCode
}
}
}
}
}Mostrar resposta
{
"data": {
"checkout": {
"orders": [
{
"payment": {
"name": "Cartão Mundipagg",
"card": {
"brand": "mastercard",
"installments": 2,
"cardInterest": 0,
"name": "Teste Wake",
"number": "4975",
"acquirerReturnCode": "51"
}
}
},
]
}
}
}Campos de orders.payment.card
Campo Tipo Descrição brandString Bandeira do cartão utilizado no pagamento. installmentsInt Quantidade de parcelas do pagamento. cardInterestDecimal Juros aplicados em razão do parcelamento no cartão. nameString Nome do portador informado no cartão. numberString Quatro últimos dígitos do cartão. acquirerReturnCodeString Código de retorno da adquirente para a transação do cartão, tal como recebido pela plataforma (ex.: 00para aprovação,51para saldo/limite insuficiente).
Sobre oacquirerReturnCodeO campo
acquirerReturnCodeexpõe o código de retorno enviado pela adquirente na transação do cartão, sem tradução nem tratamento pela plataforma. Ele é persistido em todas as transações — aprovadas e recusadas — e é disponibilizado para que a loja possa exibir ao consumidor final mensagens próprias, amigáveis e padronizadas, em vez de textos técnicos gerados pela adquirente.Pontos de atenção:
- O conjunto de códigos e seus significados são definidos pela adquirente/gateway utilizado pela loja. A plataforma apenas repassa o valor recebido, portanto o mapeamento código → mensagem deve ser feito no front da loja.
- O campo retorna
nullquando a transação não possui código de retorno da adquirente — por exemplo, em pagamentos que não são por cartão, ou quando a adquirente não envia o código.- Esse mesmo campo está disponível no retorno da mutation CheckoutComplete, em
orders.payment.card.
2) Página "CheckoutComplete" → final da seção Validação Checkout Online
Validação Checkout OnlineOnde: https://wakecommerce.readme.io/docs/checkoutcomplete — inserir imediatamente após o bloco "Mostrar resposta" da seção Validação Checkout Online (aquele que exibe o erro GTW100), no fim da página.
Código de retorno da adquirente em recusasQuando o pagamento é recusado pela adquirente, a
checkoutCompleteretorna o erroGTW101e, junto dele, o código de retorno da adquirente emerrors[].extensions.acquirerReturnCode. Com esse código, a loja pode exibir ao consumidor final uma mensagem própria e amigável, em vez do texto técnico da adquirente.Exemplo de resposta de recusa:
{ "errors": [ { "message": "Error when trying to process selected payment method", "path": [ "checkoutComplete" ], "extensions": { "code": "GTW101", "acquirerReturnCode": "51" } } ], "data": { "checkoutComplete": null } }
Campo Tipo Descrição extensions.codeString Código de erro da plataforma. GTW101indica que a adquirente não autorizou o pagamento.extensions.acquirerReturnCodeString Código de retorno da adquirente para a tentativa de pagamento recusada, repassado sem tratamento pela plataforma. ⚠️ Atenção
extensions.acquirerReturnCodesó é retornado quando a adquirente informa o código na recusa. Se a adquirente não devolver o código, o erro é retornado apenas comextensions.code, e o front deve exibir sua mensagem genérica de falha no pagamento.- O campo não é retornado em erros de comunicação com o gateway (por exemplo,
GTW100eGTW104), pois nesses casos não houve retorno da adquirente.- Os códigos e seus significados são definidos pela adquirente/gateway da loja; o mapeamento código → mensagem amigável deve ser implementado no front.
- Em pedidos já criados, o código também pode ser consultado em
orders.payment.card.acquirerReturnCode, tanto no retorno desta mutation quanto na query Checkout.
Informação do valor unitário dos produtos dos pedidos de um carrinho
Abaixo temos um exemplo, de consulta onde retornará o valor unitário do(s) produto(s) do(s) pedido(s) de um carrinho fechado:
query {
checkout(checkoutId:"bebddb4a-3c7a-4492-854f-58aa02babf7c"
customerAcessToken:"Lk7kiuvKnSOZFwjOk/3C1Bb4FeNhYO5IgW3YM9VApudLrIL1w8dixR8A+SeMbzBXa5LDhJ+nxyhUElJzug+ELX1FbzvJ4d4LmaBKbUlIDfCKb2tLY6a99uCrcOadsXk7c2fWFawEYu9sFREE4/ZWJMwGoObt3kwhcBh9VkzgHiFsem+CIY2X+l5T6yidUKCcRUdnTht41geiLOMjOSNnPmqZvTRcowFLlGBDdXwAHXaflwMBZ1gN2XHt6Qwh+AiW"
) {
orders{
products{
name
quantify
value
unitValue
}
}
}
}Mostrar resposta
{
"data":{
"checkout":{
"orders":[
{
"products":[
{
"name":"Têncis Converse Chuck 70 HI",
"quantify":2,
"value":2000,
"unitValue":1000
},
{
"name":"Tênis All Star Preto",
"quantify":9,
"value":2061,
"unitValue":229
}
]
}
]
}
}
}Exibição de preço por unidade de medida (fator multiplicador):
query {
checkout(checkoutId: "00000000-0000-0000-0000-000000000000") {
products {
productVariantId
name
quantity
ajustedPrice
totalAdjustedPrice
multiplicationFactor
quantityWithMultiplicationFactor
unitPriceWithMultiplicationFactor
}
}
}Mostrar resposta
{
"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
}
]
}
}
}No carrinho, em vez de "5 caixas × R$ 100,00", o parceiro pode exibir "14,40 m² × R$ 34,72/m²". O total da linha continua sendo totalAdjustedPrice (R$ 500,00) em ambas as leituras.
Informação se o carrinho está utilizando valor de conta corrente
Abaixo temos um exemplo, de consulta onde retornará a informação de que o determinado carrinho está utilizando valor de conta corrente.
query {
checkout(checkoutId:"da77dd86-188f-4e06-87f4-bf1411e8cbf1",
customerAccessToken:"TaoUWewI1P4opppp1t2u9KK2CguZ35UVt2fhxV1AZ8JMdrOrCcP9vnMwDguwSbNhuodxVqEV66UbJ/NkZDSMlLoDNo4h3oH1EbO+dnzKiA2wm3rrt2WKspxx+A0WltE0eIKe5WrXaVqOJt4YW+sJCHzowr+zeT26krjeqe1HsJf5LIQbDwGMxP/fDagm9AtE7lGd/1mEBdPSq/0VY2ZzekMyXwETcGRfF16KZuQA/tsuHKU9BF5evdUi8PefwhOX"){
checkingAccountActive
}
}Mostrar resposta
{
"data": {
"checkout": {
"checkingAccountActive": false
}
}
}Informações de Kit no checkout
Abaixo temos um exemplo, de consulta onde retornará a informação de kit no checkout.
query{
checkout(checkoutId:"8b137ccc-707b-420c-8aa1-2306a98d3adaaaab"){
checkoutId
kits{
name
alias
imageUrl
kitGroupId
kitId
listPrice
price
quantity
totalListPrice
totalAdjustedPrice
ajustePrice
products{
productId
name
}
}
}
}Mostrar resposta
{
"data": {
"checkout": {
"checkoutId": "8b137ccc-707b-420c-8aa1-2306a98d3adb",
"kits": [
{
"name": "Teste 2",
"alias": "teste-2-60",
"imageUrl": null,
"kitGroupId": "t+dh2KQJHBl2b0Ypo5C5iqqw==",
"kitId": 60,
"listPrice": 12001,
"price": 12761,
"quantity": 2,
"totalListPrice": 25522,
"totalAdjustedPrice":180,
"ajustePrice":90,
"products": [
{
"productId": 175309,
"name": "Smart Tv Led 55 LG Um7470 Ultra Hd 4k Hdr Ativo, Dts Virtual"
},
{
"productId": 174424,
"name": "Brinco Concha Furtacor"
}
]
}
]
}
}
}Consulta do limite de crédito do usuário no carrinho
Abaixo temos um exemplo de consulta para obter o limite de crédito e o saldo utilizado de um usuário no carrinho:
query {
checkout(
checkoutId: "07716392-aef0-463e-bcaa-ff33381d0ece"
customerAccessToken: "Lk7kiuvKnSOZFwjOk/3C1Bb4FeNhYO5IgW3YM9VApudLrIL1w8dixR8A+SeMbzBXa5LDhJ+nxyhUElJzug+ELX1FbzvJ4d4LmaBKbUlIDfCKb2tLY6a99uCrcOadsXk7c2fWFawEYu9sFREE4/ZWJMwGoObt3kwhcBh9VkzgHiFsem+CIY2X+l5T6yidUKCcRUdnTht41geiLOMjOSNnPmqZvTRcowFLlGBDdXwAHXaflwMBZ1gN2XHt6Qwh+AiW"
) {
customer {
creditLimit
creditLimitBalance
}
}
}- creditLimit: O limite total de crédito do cliente cadastrado no sistema.
- creditLimitBalance: O valor atual de crédito utilizado pelo cliente.
Mostrar resposta
{
"data": {
"checkout": {
"customer": {
"creditLimit": 5000,
"creditLimitBalance": 1500
}
}
}
}Consulta da situação do pedido de um carrinho fechado
Abaixo temos um exemplo de consulta para obter a situação do pedido de um carrinho fechado:
query {
checkout(checkoutId: "E259441C-E3B3-456E-9FD6-4BC5A2295D61") {
orders {
orderStatusDisplay
orderStatus
}
}
}- orderStatus: O status do pedido.
- orderStatusDisplay: O status do pedido em formato de texto. Este campo também pode ser retornado em inglês, conforme definido o idioma na configuração "Storefront - Idioma das mensagens de erro e informações da API" dentro do painel administrativo da loja.
Mostrar resposta
"data": {
"checkout": {
"orders": [
{
"orderStatusDisplay": "Cancelado",
"orderStatus": "CANCELADO"
}
]
}
}
}Mostrar resposta
"data": {
"checkout": {
"orders": [
{
"orderStatusDisplay": "Cancelado",
"orderStatus": "CANCELADO"
}
]
}
}
}Escolha de brinde no carrinho (giftOptions)
giftOptions)Neste exemplo são consultadas as linhas de brinde do carrinho junto das opções de brinde que o consumidor pode escolher, com as imagens em 300x300:
query {
checkout(checkoutId: "d0e47846-d2a8-45e0-b51f-f25ee88446a3") {
checkoutId
products {
productId
productVariantId
name
quantity
gift
cartGiftId
giftOptions(width: 300, height: 300) {
productId
productVariantId
selected
name
imageUrl
sku
url
}
}
}
}Mostrar resposta
{
"data": {
"checkout": {
"checkoutId": "d0e47846-d2a8-45e0-b51f-f25ee88446a3",
"products": [
{
"productId": 222725,
"productVariantId": 336610,
"name": "Anabela Camurça Animale",
"quantity": 1,
"gift": false,
"cartGiftId": 0,
"giftOptions": []
},
{
"productId": 111,
"productVariantId": 336687,
"name": "Caneca Cerâmica 300ml",
"quantity": 1,
"gift": true,
"cartGiftId": 987,
"giftOptions": [
{
"productId": 111,
"productVariantId": 336687,
"selected": true,
"name": "Caneca Cerâmica 300ml",
"imageUrl": "https://lojacss.fbitsstatic.net/img/p/caneca-ceramica-300ml/caneca.jpg?w=300&h=300&v=202608141200",
"sku": "CAN-300",
"url": "https://lojacss.fbits.store/produto/caneca-ceramica-300ml"
},
{
"productId": 222,
"productVariantId": null,
"selected": false,
"name": "Camiseta Básica",
"imageUrl": "https://lojacss.fbitsstatic.net/img/p/camiseta-basica/camiseta.jpg?w=300&h=300&v=202608141200",
"sku": "CAM-BAS",
"url": "https://lojacss.fbits.store/produto/camiseta-basica"
},
{
"productId": 333,
"productVariantId": 336657,
"selected": false,
"name": "Mousepad Gamer",
"imageUrl": "https://lojacss.fbitsstatic.net/img/p/mousepad-gamer/mousepad.jpg?w=300&h=300&v=202608141200",
"sku": "MP-GAM",
"url": "https://lojacss.fbits.store/produto/mousepad-gamer"
}
]
}
]
}
}
}Leitura da resposta:
- A primeira linha não é brinde (
gift: false) e por isso retornagiftOptionsvazio. - A segunda linha é o brinde do carrinho (
cartGiftId: 987) e oferece três opções. A caneca é a opção vinculada no momento (selected: true). - O mousepad tem
productVariantIdpreenchido: a escolha pode ser efetivada direto com a mutation CheckoutGiftVariantSelection, informandocartGiftId: 987eproductVariantId: 336657. - A camiseta tem
productVariantId: null: antes de efetivar, é preciso consultar as variantes do produto222e deixar o consumidor escolher tamanho/cor.
Updated 20 days ago

