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). |
| 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). |
| 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. |
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.
Dois pontos que vale confirmar com o Matheus antes de publicar, porque não consegui verificar só pelo código: (a) se o acquirerReturnCode em card chega preenchido também em transações aprovadas no fluxo Storefront (o epic pede persistência de positivos e negativos, e o código lê de FormaPagamento.Informacoes.CodigoRetornoAdquirente) — se vier só em recusa, ajusto a descrição da tabela; (b) o exemplo "51" que usei nos dois blocos veio do print e dos testes unitários do MR, então está coerente com o que ele pediu na issue.
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
}
]
}
]
}
}
}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"
}
]
}
}
}Updated about 7 hours ago

