Carrinho de compras do visitante com produtos, totais, cupom, frete e parcelamento.
| Campo | Tipo | Descrição |
|---|---|---|
| id | ID! | ID global Relay do carrinho. |
| products | [ShoppingCartProduct!]! | Itens no carrinho. |
| totalPrice | Float! | Total do carrinho em centavos (com descontos e frete). |
| originalTotalPrice | Float! | Total original antes de descontos. |
| coupon | Coupon | Cupom aplicado. |
| shippingOptions | [ShippingOption!] | Opções de frete disponíveis após cálculo. |
| totalShipping | TotalShipping! | Detalhes do frete selecionado. |
| isShippingCalculated | Boolean! | Se o frete já foi calculado. |
| maximumInstallments | Int! | Número máximo de parcelas para o total atual. |
| installmentsPrice | [InstallmentsPrice!]! | Tabela de preços por parcela. |
| address | UserAddress | Endereço de entrega. |
| isAddressComplete | Boolean! | Se o endereço possui todos os campos obrigatórios. |
| userInfo | UserInfo | Dados pessoais do comprador (nome, email, CPF). |
| isUserInfoComplete | Boolean! | Se os dados pessoais estão completos. |
| orderIdReference | ID | ID do pedido de referência (carrinho recuperado). |
| isAdjustmentOrder | Boolean! | Se é um pedido de ajuste/troca. |
| totalPriceByPaymentMethod | [TotalByPaymentMethod!]! | Total por método de pagamento (PIX, cartão, etc.). |
| Campo | Tipo | Descrição |
|---|---|---|
| id | ID! | ID global Relay do item no carrinho. |
| title | String! | Título do produto. |
| description | String! | Descrição do produto. |
| images | [Image!]! | Imagens do produto. |
| price | Float | Preço unitário em centavos. |
| finalPrice | Float | Preço final com descontos aplicados. |
| discountPercentage | Float | Percentual de desconto aplicado. |
| quantity | Int! | Quantidade no carrinho. |
| availableQuantity | Int! | Quantidade disponível no estoque. |
| category | String | Categoria do produto. |
| variation | Variation | Variação selecionada (cor, tamanho). |
| shoppingCartProductOffer | ShoppingCartProductOffer | Oferta aplicada via funil. |
| couponDiscount | Float | Desconto do cupom em centavos. |
| isVirtualProduct | Boolean! | Se é um produto digital. |
| Campo | Tipo | Descrição |
|---|---|---|
| code | String! | Código do serviço de frete (ex: SEDEX, PAC). |
| name | String! | Nome de exibição do frete. |
| totalValue | Float! | Valor total do frete em centavos. |
| totalDeliveryTime | Int! | Prazo de entrega em dias úteis. |
| melhorEnvio | Boolean | Se usa Melhor Envio como intermediador. |
| Campo | Tipo | Descrição |
|---|---|---|
| totalValue | Float! | Valor total do frete selecionado. |
| totalDeliveryTime | Int! | Prazo total em dias úteis. |
query GetCart($hostname: String!) {
shoppingCart(hostname: $hostname) {
id
totalPrice
originalTotalPrice
isShippingCalculated
maximumInstallments
coupon {
code
discountPercentage
}
products {
id
title
price
finalPrice
quantity
availableQuantity
images { url }
variation { name value }
}
shippingOptions {
code
name
totalValue
totalDeliveryTime
}
totalPriceByPaymentMethod {
paymentMethod
totalPrice
}
}
} {
"data": {
"shoppingCart": {
"id": "U2hvcHBpbmdDYXJ0Onh5eg==",
"totalPrice": 17980,
"originalTotalPrice": 19980,
"isShippingCalculated": true,
"maximumInstallments": 12,
"coupon": null,
"products": [
{
"id": "U2hvcHBpbmdDYXJ0UHJvZHVjdDphYmMx",
"title": "Camiseta Premium",
"price": 8990,
"finalPrice": 8990,
"quantity": 2,
"availableQuantity": 42,
"images": [{ "url": "https://..." }],
"variation": { "name": "Tamanho", "value": "M" }
}
],
"shippingOptions": [
{
"code": "SEDEX",
"name": "Sedex",
"totalValue": 1500,
"totalDeliveryTime": 3
},
{
"code": "PAC",
"name": "PAC",
"totalValue": 800,
"totalDeliveryTime": 7
}
],
"totalPriceByPaymentMethod": [
{ "paymentMethod": "pix", "totalPrice": 16182 },
{ "paymentMethod": "credit_card", "totalPrice": 17980 }
]
}
}
} const response = await fetch(
'/graphql',
{
method: 'POST',
credentials: 'include',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
query: `query($hostname: String!) {
shoppingCart(hostname: $hostname) {
id totalPrice totalPriceByPaymentMethod { paymentMethod totalPrice }
products { id title price quantity }
}
}`,
variables: { hostname: "minha-loja" }
})
}
);
const data = await response.json(); curl -X POST https://minha-loja.com/graphql \
-H "Content-Type: application/json" \
-b "authJwtClient=YOUR_SESSION_COOKIE" \
-d '{"query":"query { shoppingCart(hostname: \"minha-loja\") { id totalPrice products { id title price quantity } } }"}'