Carrinho e compra
O carrinho do LuckyMaker é persistido por uuid. A SDK cria, salva e reutiliza esse UUID sozinha.
UUID do carrinho
Seção intitulada “UUID do carrinho”Você não passa o UUID como argumento. Ele fica na propriedade sdk.cart.uuid:
console.log(sdk.cart.uuid); // undefined antes do primeiro usoNa primeira chamada que precisa de carrinho, a SDK gera um UUID e guarda. No browser, ele fica em localStorage; em SSR/Node, em memória.
Para continuar um carrinho existente:
sdk.cart.uuid = "uuid-do-carrinho";Ou na criação da instância:
const sdk = new LMSdk({ baseUrl: "api.sualoja.com.br", cartUuid: "uuid-do-carrinho"});Consultar o carrinho
Seção intitulada “Consultar o carrinho”const cart = await sdk.cart.getCart();const items = await sdk.cart.getItems();Se ainda não existir carrinho, a SDK cria o UUID e o backend cria o registro vazio.
Adicionar itens
Seção intitulada “Adicionar itens”addItems cria o carrinho automaticamente quando necessário:
await sdk.cart.addItems({ item: { type: "RAFFLE_NUMBERS", raffleUUID: "uuid-do-sorteio", amount: 10 }});
console.log(sdk.cart.uuid); // UUID salvo pela SDKTipos de item suportados:
type |
Campos principais |
|---|---|
RAFFLE_NUMBERS |
raffleUUID, amount |
RAFFLE_NUMBERS + kind: "GAMBLING" |
raffleUUID, priceMultiplier, amount |
ECOMMERCE_ITEM |
itemId, amount |
SUBSCRIPTION |
planId, amount |
CREDITS |
amount |
Substituir e remover
Seção intitulada “Substituir e remover”await sdk.cart.replaceItems({ items: [ { type: "CREDITS", amount: 50 } ]});
await sdk.cart.removeItem("item-id");Ofertas e cupons
Seção intitulada “Ofertas e cupons”const publicOffers = await sdk.offers.listPublic();const myOffers = await sdk.offers.listOffers();const coupons = await sdk.offers.listCoupons();
await sdk.offers.claimOffer("offer-id");await sdk.coupons.redeemCoupon("CUPOM10");Validar o carrinho
Seção intitulada “Validar o carrinho”Para validar itens antes de persistir:
const issues = await sdk.cart.previewIssues({ items: [ { type: "RAFFLE_NUMBERS", raffleUUID: "uuid", amount: 10 } ], paymentMethod: "PIX"});Para validar o carrinho já persistido:
const issues = await sdk.cart.previewIssuesCart({ cpf: "00000000000"});Checkout
Seção intitulada “Checkout”Use o UUID que a SDK já salvou:
const cartUuid = sdk.cart.uuid;
if (!cartUuid) { throw new Error("Carrinho ainda não criado.");}
const purchase = await sdk.purchase.createPurchase({ captcha: "<token-do-captcha>", cart: { uuid: cartUuid }, paymentData: { type: "PIX" }});Ou pelo fluxo de pedidos:
const order = await sdk.orders.createOrder("payment-id", { cpf: "00000000000"});
const bonds = await sdk.orders.getBonds("payment-id");Carrinho expirado
Seção intitulada “Carrinho expirado”Se o backend responder CART_GONE ou CART_NOT_FOUND, a SDK descarta o UUID antigo e repete a requisição uma vez com um carrinho novo. Você não precisa tratar esse caso manualmente.
Status e acompanhamento
Seção intitulada “Status e acompanhamento”const order = await sdk.orders.getOrder("payment-id");const payments = await sdk.payments.listHistory({ page: 1 });const shipping = await sdk.payments.getShipping("payment-uuid");