Gerenciar kits
Lista, cria, consulta, altera e apaga kits de produtos, com preço fechado ou desconto e a lista de itens.
Um kit junta produtos já cadastrados em um único item de venda. O cliente coloca o kit no carrinho e a plataforma aplica o preço do kit. Estas cinco rotas são o CRUD completo. Exigem o módulo product-bundles ligado e o privilégio manage_bundles ou manage_catalog. O cálculo do preço está na home da seção.
/api/v1/admin/bundlesAdminLista os kits
Do mais novo para o mais antigo, com os itens de cada kit. A lista inclui os kits gerados pelo Compre junto (slug fbt-...).
Parâmetros de consulta
pageintegerpadrão: 1per_pageintegerpadrão: 20statusstringADHactive, disabled, hidden).searchstring/api/v1/admin/bundlesAdminCria um kit
Responde 201 com o kit. O slug é gerado a partir do nome (com sufixo se já existir) quando você não manda.
Corpo da requisição (JSON)
namestringobrigatóriostatusstringobrigatórioADHactivedisabledhiddendraft, a criação falha com 500.slugstringdescriptionstringimage_urlstringprice_overrideintegerprice_bps.)discount_typestringpadrão: nonenonepercentagefixeddiscount_valueintegerpercentage (1000 é 10%) ou em centavos quando fixed. (Alias: discount_bps, sempre percentual.)vendor_iduuiditemsarrayProdutos do kit.
product_iduuidobrigatórioquantityintegerpadrão: 1sort_orderintegerpadrão: 0/api/v1/admin/bundles/{id}AdminConsulta um kit
Devolve o kit com os itens e os preços calculados.
Parâmetros de caminho
iduuidobrigatório/api/v1/admin/bundles/{id}AdminAltera um kit
Altera só os campos enviados. Quando items é enviado, a lista de itens é substituída por inteira; sem items, os itens não mudam.
Parâmetros de caminho
iduuidobrigatórioAceita os campos da criação, todos opcionais. Para tirar o preço fechado, envie price_override: 0.
/api/v1/admin/bundles/{id}AdminApaga um kit
Apaga o kit e os itens de forma definitiva.
Parâmetros de caminho
iduuidobrigatórioExemplo de requisição
Resposta
Campos do kit
iduuidnamestringslugstringdescriptionstringstatusstringADHimage_urlstringprice_overrideinteger0 sem preço fechado. Repete price_bps.discount_typestringnonepercentagefixeddiscount_valueintegerpercentage, centavos em fixed). Repete discount_bps.vendor_iduuiditemsarrayid, bundle_id, product_id, quantity, sort_order, e do produto product_name, slug, product_price (centavos, unitário), product_image, product_sku.calculated_priceintegerproduct_price × quantity, em centavos. Ausente (zero) quando não há itens.final_priceintegerprice_redactedbooleantrue quando os preços foram ocultados (visitante em loja que esconde preços). Não ocorre em chamadas de administrador autenticado.created_atstringupdated_atstringErros
| Status | Quando | Corpo de exemplo |
|---|---|---|
| 400 | Corpo que não é JSON | {"error":"invalid request body","detail":"..."} |
| 400 | Sem name | {"error":"name is required"} |
| 401 | Token ausente ou expirado | {"error":"invalid or expired token"} |
| 403 | Módulo desligado, ou falta o privilégio | {"error":"module_disabled","module":"product-bundles"} |
| 404 | GET de um kit que não existe | {"error":"bundle not found"} |
| 500 | status ausente ou draft, produto inexistente, ou slug repetido | {"error":"failed to create bundle","detail":"..."} |
| 500 | PUT ou DELETE de um kit que não existe | {"error":"failed to delete bundle","detail":"bundle not found"} |