Skip to main content

Cart Contract

Esta página é o contrato canônico para Cart na Corvex Store V2.
Fonte normativa: StorefrontCart, StorefrontCartItem, CartLineInput e useCorvexCart() em @corvex/theme-sdk types.

MUST — hook principal

useCorvexCart MUST ser usado dentro de árvore com CorvexProvider (storefront / editor).

StorefrontCart


StorefrontCartItem

Lista pública: items. Atualize e remova com item.id. unitPrice é número. A moeda do carrinho é currency.

MUST — adicionar ao carrinho

  • product — objeto com pelo menos id (Product ou resumo)
  • quantity — OPTIONAL, default 1
  • variant — OPTIONAL ProductVariant ou { id }
Helper: resolveCartLineInput(product, quantity, variant) → CartLineInput. MUST passar a variante selecionada quando o produto tem mais de uma. Se a API rejeitar essa variante, o cliente pode tentar de novo sem o id e o hook não marca erro. Veja Ações do carrinho.

MUST — atualizar / remover


MUST — checkout

Redireciona ou retorna URL de checkout externo. Não há template checkout obrigatório no Theme V2.

Contexto de página cart

Template cart + schema.data: ["cart"] + usePage('cart'):

Sessão (comportamento público)

O SDK persiste referência do carrinho em localStorage por loja para reabrir sessão entre visitas. Chave derivada de storeId.

Cliente direto (createStorefront().cart)

Para loaders sem React:
  • create(), get(), ensure(), addItem(), updateItem(), removeItem(), clearItems(), checkout()
Base path público: /public/stores/{storeId}/storefront/cart.

Restrições

  • MUST NOT implementar fetch manual de carrinho se useCorvexCart atende.
  • MUST disable add-to-cart quando variante availableForSale === false.
  • MUST NOT usar cart.lines — contrato é items.

Veja também