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 menosid(Product ou resumo)quantity— OPTIONAL, default 1variant— OPTIONALProductVariantou{ id }
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
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 emlocalStorage 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()
/public/stores/{storeId}/storefront/cart.
Restrições
- MUST NOT implementar fetch manual de carrinho se
useCorvexCartatende. - MUST disable add-to-cart quando variante
availableForSale === false. - MUST NOT usar
cart.lines— contrato éitems.