Acesso Comercial / Docs / Storefront / API
Ctrl K
MUTATION

addShoppingCartItem

Adiciona um produto ao carrinho de compras. Cria o carrinho automaticamente se não existir.

Input

AddShoppingCartItemMutationInput!

CampoTipoDescrição
hostnameString!Hostname da loja.
productIdID!ID global Relay do produto.
quantityInt!Quantidade a adicionar.
shoppingCartProductOfferObjectOferta de funil (opcional, para upsell).
detectedCityStringCidade detectada do visitante (opcional).

Retorno

CampoTipoDescrição
shoppingCartShoppingCartCarrinho atualizado com o novo item.

Mutation

GraphQL
mutation AddToCart($input: AddShoppingCartItemMutationInput!) {
  addShoppingCartItem(input: $input) {
    shoppingCart {
      id
      totalPrice
      totalQuantity
      products {
        id
        title
        price
        quantity
        images { url }
      }
    }
  }
}

Variables

JSON
{
  "input": {
    "hostname": "minha-loja",
    "productId": "UHJvZHVjdDphYmMx",
    "quantity": 1
  }
}

Resposta

JSON
{
  "data": {
    "addShoppingCartItem": {
      "shoppingCart": {
        "id": "Q2FydDp4eXo=",
        "totalPrice": 8990,
        "totalQuantity": 1,
        "products": [
          {
            "id": "item1",
            "title": "Camiseta Premium",
            "price": 8990,
            "quantity": 1,
            "images": [{ "url": "https://..." }]
          }
        ]
      }
    }
  }
}

Fetch

JavaScript
const response = await fetch('/graphql', {
  method: 'POST',
  credentials: 'include',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({
    query: `mutation($input: AddShoppingCartItemInput!) {
      addShoppingCartItem(input: $input) {
        shoppingCart { id totalPrice totalQuantity }
      }
    }`,
    variables: { input: { hostname: "minha-loja", productId: "UHJvZHVjdDphYmMx", quantity: 1 } }
  })
});

cURL

Bash
curl -X POST https://minha-loja.com/graphql \
  -H "Content-Type: application/json" \
  -b "authJwtClient=YOUR_SESSION_COOKIE" \
  -d '{"query":"mutation { addShoppingCartItem(input: { hostname: \"minha-loja\", productId: \"UHJvZHVjdDphYmMx\", quantity: 1 }) { shoppingCart { id totalPrice } } }"}'