Acesso Comercial / Docs / Storefront / API
Ctrl K
OBJECT

ShoppingCart

Carrinho de compras do visitante com produtos, totais, cupom, frete e parcelamento.

Campos

CampoTipoDescrição
idID!ID global Relay do carrinho.
products[ShoppingCartProduct!]!Itens no carrinho.
totalPriceFloat!Total do carrinho em centavos (com descontos e frete).
originalTotalPriceFloat!Total original antes de descontos.
couponCouponCupom aplicado.
shippingOptions[ShippingOption!]Opções de frete disponíveis após cálculo.
totalShippingTotalShipping!Detalhes do frete selecionado.
isShippingCalculatedBoolean!Se o frete já foi calculado.
maximumInstallmentsInt!Número máximo de parcelas para o total atual.
installmentsPrice[InstallmentsPrice!]!Tabela de preços por parcela.
addressUserAddressEndereço de entrega.
isAddressCompleteBoolean!Se o endereço possui todos os campos obrigatórios.
userInfoUserInfoDados pessoais do comprador (nome, email, CPF).
isUserInfoCompleteBoolean!Se os dados pessoais estão completos.
orderIdReferenceIDID do pedido de referência (carrinho recuperado).
isAdjustmentOrderBoolean!Se é um pedido de ajuste/troca.
totalPriceByPaymentMethod[TotalByPaymentMethod!]!Total por método de pagamento (PIX, cartão, etc.).

ShoppingCartProduct

CampoTipoDescrição
idID!ID global Relay do item no carrinho.
titleString!Título do produto.
descriptionString!Descrição do produto.
images[Image!]!Imagens do produto.
priceFloatPreço unitário em centavos.
finalPriceFloatPreço final com descontos aplicados.
discountPercentageFloatPercentual de desconto aplicado.
quantityInt!Quantidade no carrinho.
availableQuantityInt!Quantidade disponível no estoque.
categoryStringCategoria do produto.
variationVariationVariação selecionada (cor, tamanho).
shoppingCartProductOfferShoppingCartProductOfferOferta aplicada via funil.
couponDiscountFloatDesconto do cupom em centavos.
isVirtualProductBoolean!Se é um produto digital.

ShippingOption (inline)

CampoTipoDescrição
codeString!Código do serviço de frete (ex: SEDEX, PAC).
nameString!Nome de exibição do frete.
totalValueFloat!Valor total do frete em centavos.
totalDeliveryTimeInt!Prazo de entrega em dias úteis.
melhorEnvioBooleanSe usa Melhor Envio como intermediador.

TotalShipping

CampoTipoDescrição
totalValueFloat!Valor total do frete selecionado.
totalDeliveryTimeInt!Prazo total em dias úteis.

Query

GraphQL
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
    }
  }
}

Resposta

JSON
{
  "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 }
      ]
    }
  }
}

Fetch

JavaScript
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

Bash
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 } } }"}'