> ## Documentation Index
> Fetch the complete documentation index at: https://pedirgasdocs.supergasbras.app/llms.txt
> Use this file to discover all available pages before exploring further.

# Carrinho de compras: como funciona a Cart API

> Entenda o modelo de carrinho de compras da Supergasbras: como criar sessões, agendar entregas e usar a Cart API no fluxo completo de pedidos.

A Cart API gerencia o carrinho de compras do cliente antes do início do processo de checkout. Ela é responsável por manter o estado dos produtos selecionados e permitir o agendamento de entrega.

## O que é uma sessão de carrinho

Uma sessão de carrinho (`cart session`) representa o carrinho atual de um cliente. Ela é identificada por um `sessionId` — um identificador único que sua aplicação define e gerencia.

Você pode:

* **Criar** uma nova sessão de carrinho
* **Atualizar** uma sessão existente com novos dados
* **Consultar** o estado atual da sessão
* **Agendar** a sessão para um horário de entrega específico

## Endpoints da Cart API

| Método | Endpoint                            | Descrição                             |
| ------ | ----------------------------------- | ------------------------------------- |
| `PUT`  | `/v1/sessions/{sessionId}`          | Criar ou atualizar sessão do carrinho |
| `GET`  | `/v1/sessions/{sessionId}`          | Obter dados da sessão do carrinho     |
| `PUT`  | `/v1/sessions/{sessionId}/schedule` | Agendar a sessão do carrinho          |

## Criar ou atualizar o carrinho

O endpoint `PUT /v1/sessions/{sessionId}` é idempotente: se a sessão não existir, ela é criada; se já existir, é atualizada.

```bash theme={null}
curl -X PUT "https://cart-ms.supergasbras.app/v1/sessions/f47ac10b-58cc-4372-a567-0e02b2c3d479" \
  -H "Authorization: Bearer SEU_TOKEN_AQUI" \
  -H "Content-Type: application/json" \
  -d '{
    "customerId": "c9b1d2e3-f4a5-6789-bcde-f01234567890"
  }'
```

## Agendar entrega

Use o endpoint de agendamento para definir uma data e hora de entrega:

```bash theme={null}
curl -X PUT "https://cart-ms.supergasbras.app/v1/sessions/f47ac10b-58cc-4372-a567-0e02b2c3d479/schedule" \
  -H "Authorization: Bearer SEU_TOKEN_AQUI" \
  -H "Content-Type: application/json" \
  -d '{
    "scheduledDate": "2024-12-20",
    "scheduledTime": "14:00"
  }'
```

<Tip>
  Agende a sessão antes de iniciar o checkout para garantir que o horário de entrega seja validado no momento da compra.
</Tip>

## Próximo passo

Após configurar o carrinho, crie uma sessão de compra na [Checkout API](/concepts/checkout) para dar continuidade ao pedido.
