Kits
Lista os kits ativos da loja e abre um kit pelo slug, com os produtos, o preço calculado e o preço final com desconto.
Um kit (bundle) é uma lista fixa de produtos vendidos juntos, com um preço próprio: a soma dos itens, um preço fixo ou a soma com desconto. É útil para a página "Kits e combos" e para o destaque de combos em páginas de produto.
Só aparecem kits ativos e da loja (sem seller dono). Kits criados por um seller e os kits automáticos de "compre junto" (slug começando em fbt-) não saem na lista.
/api/v1/storefront/bundlesPúblicaListar kits ativos
Mais novos primeiro. Responde 401 shopping_requires_login a visitante quando a loja só permite navegar logado.
Parâmetros de consulta
pageintegerpadrão: 1per_pageintegerpadrão: 200) volta ao padrão 20, não ao máximo.Exemplo de requisição
curl "$BASE_URL/api/v1/storefront/bundles?per_page=10"Resposta
{
"bundles": [
{
"id": "9a84247d-4909-44bf-a519-6fb34d11b236",
"name": "Kit Cozinha",
"slug": "kit-cozinha",
"description": "Cafeteira e jarra térmica.",
"price_bps": 0,
"discount_bps": 0,
"discount_type": "none",
"price_override": 0,
"discount_value": 0,
"status": "A",
"image_url": "",
"created_at": "2026-06-30T18:28:45.528638Z",
"updated_at": "2026-06-30T18:33:00.394333Z",
"items": [
{
"id": "05bc22b9-a006-452b-bf96-93c236a15032",
"bundle_id": "9a84247d-4909-44bf-a519-6fb34d11b236",
"product_id": "5fc1c706-99fd-4d97-bf6c-ab2793da1cea",
"quantity": 2,
"sort_order": 0,
"product_name": "Cafeteira Premium Branca",
"slug": "cafeteira-premium-branca-01426-1426",
"product_price": 19990,
"product_image": "/uploads/exemplo/cafeteira.png",
"product_sku": "SD-001426"
}
],
"calculated_price": 39980,
"final_price": 39980
}
],
"total": 1,
"page": 1,
"per_page": 10,
"total_pages": 1
}Campos da resposta
bundlesarraytotalintegerpageintegerper_pageintegertotal_pagesintegerOs campos de cada kit são os mesmos do detalhe, descritos abaixo.
/api/v1/storefront/bundles/{slug}PúblicaDetalhe de um kit pelo slug
Devolve um kit ativo e da loja, com os itens e os preços calculados. Um kit inativo, de seller ou inexistente responde 404.
Parâmetros de caminho
slugstringobrigatóriokit-cozinha.Exemplo de requisição (detalhe)
curl "$BASE_URL/api/v1/storefront/bundles/kit-cozinha"Resposta (detalhe)
{
"id": "9a84247d-4909-44bf-a519-6fb34d11b236",
"name": "Kit Cozinha",
"slug": "kit-cozinha",
"description": "Cafeteira e jarra térmica.",
"price_bps": 0,
"discount_bps": 1000,
"discount_type": "percentage",
"price_override": 0,
"discount_value": 1000,
"status": "A",
"image_url": "/uploads/exemplo/kit.png",
"created_at": "2026-06-30T18:28:45.528638Z",
"updated_at": "2026-06-30T18:33:00.394333Z",
"items": [
{
"id": "05bc22b9-a006-452b-bf96-93c236a15032",
"bundle_id": "9a84247d-4909-44bf-a519-6fb34d11b236",
"product_id": "5fc1c706-99fd-4d97-bf6c-ab2793da1cea",
"quantity": 2,
"sort_order": 0,
"product_name": "Cafeteira Premium Branca",
"slug": "cafeteira-premium-branca-01426-1426",
"product_price": 19990,
"product_image": "/uploads/exemplo/cafeteira.png",
"product_sku": "SD-001426"
}
],
"calculated_price": 39980,
"final_price": 35982
}Campos da resposta
iduuidnamestringslugstringdescriptionstringprice_bpsinteger0 significa "sem preço fixo".price_overrideintegerprice_bps, mesmo valor.discount_typestringnonepercentagefixeddiscount_bps.discount_bpsintegerpercentage (1000 = 10%), centavos quando fixed.discount_valueintegerdiscount_bps, mesmo valor.statusstringA (ativo) nesta rota.image_urlstringcreated_atstringupdated_atstringitemsarrayitems[].iduuiditems[].bundle_iduuiditems[].product_iduuiditems[].quantityintegeritems[].sort_orderintegeritems[].product_namestringitems[].slugstringitems[].product_priceintegeritems[].product_imagestringitems[].product_skustringcalculated_priceintegerproduct_price x quantity dos itens, em centavos. Ausente quando o total é zero.final_priceintegerprice_bps se maior que zero; senão calculated_price menos o desconto; nunca negativo. Ausente quando o resultado é zero.Erros
| Status | Quando | Corpo |
|---|---|---|
| 401 | A loja exige login para navegar e a chamada é anônima. | {"error":"shopping_requires_login","message":"this storefront requires login to browse"} |
| 404 | Kit inexistente, inativo ou de seller (detalhe). | {"error":"bundle not found"} |
| 500 | Falha interna. | {"error":"failed to get bundle","detail":"..."} |