Admin API
Esta API reúne ações administrativas. Ela nunca deve ser chamada pelo client-side.
- Autenticação
- Obter link de avaliação
- Criar pedido
- Criar pedido (V2)
- Atualizar pedido
- Obter avaliações
- Obter perguntas
- Obter respostas pesquisa NPS
- Moderação de avaliações
- Listar grupos de produtos
- Obter grupo de produtos
- Criar grupo de produtos
- Atualizar grupo de produtos
- Deletar grupo de produtos
Autenticação
Você deve chamar a API da Auth0, nosso provedor de autenticação, para que possa utilizar os demais endpoints de nossa API administrativa
POST https://reviews-api.konfidency.com.br/oauth/token
Campos do corpo da requisição (JSON)
| Parâmetro | Descrição |
|---|---|
| audience | Fixo: https://reviews-api.konfidency.com.br |
| grant_type | Fixo: client_credentials |
| client_id | ID de cliente enviado pelo time de integração |
| client_secret | Token secreto enviado pelo time de integração |
Exemplo de corpo da requisição
{
"audience": "https://reviews-api.konfidency.com.br",
"grant_type": "client_credentials",
"client_id": "eSRTjDtxTaprkd6Yb97DouqFORbTT1dV",
"client_secret": "cSrP6TF1ktSAH1IV1p24Vztd9Lc4AoLA62f0KIPU1vkymSjd7a5QzpTy0Tqo51PZ"
}
Exemplo de Resposta
{
"access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
"expires_in": 86400,
"token_type": "Bearer"
}
Campos
| campo | descrição |
|---|---|
| access_token | token de acesso gerado |
| expires_in | tempo de validade do token |
| token_type | tipo de token, sempre será Bearer |
Link de avaliação
Permite obter o link de avaliação para um pedido
GET /{customer}/orders/{orderId}/ratelink
Parâmetros de URL
| Parâmetro | Descrição |
|---|---|
| customer | Fornecido pelo nosso time de integração |
| orderId | número do pedido em sua plataforma |
Exemplo de Resposta
{
"link": "https://www.kfy.app/rate/konfidency/62b266a92bbbb599f720bb22/123456-1"
}
Campos da resposta
| campo | descrição |
|---|---|
| link | URL única para avaliação do pedido |
Criar Pedido
Integra um novo pedido na plataforma Konfidency Reviews
POST /{customer}/orders
Parâmetros de URL
| Parâmetro | Descrição |
|---|---|
| customer | Fornecido pelo nosso time de integração |
Parâmetros do corpo da requisição
| Parâmetro | Descrição |
|---|---|
| orderId | Número do pedido, identificação única na plataforma do cliente |
| created | Data de criação do pedido |
| userId | ID do usuário na plataforma do cliente não utilizar dados sensíveis |
| status | Status do produto, created, authorized, shipped ou delivered |
| estimatedDeliveryDate | Data de entrega prevista do produto |
| name | Nome do cliente |
| E-mail do cliente - obrigatório para notificações por e-mail | |
| phone | Celular do cliente - obrigatório para notificações por SMS e WhatsApp |
| optOutEmail | Indica se o cliente realizou opt-out para receber e-mails |
| optOutSMS | Indica se o cliente realizou opt-out para receber mensagens SMS |
| optOutWhatsApp | Indica se o cliente realizou opt-out para receber mensagens via WhatsApp |
| items.sku | SKU do produto |
Exemplo de corpo da requisição
{
"orderId": "P123456-1",
"createdDate": "2022-06-01 12:34",
"userId": "12345",
"name": "João da Silva",
"email": "[email protected]",
"phone": "551191234-5678",
"status": "created",
"estimatedDeliveryDate": "2022-07-15",
"optOutEmail": false,
"optOutWhatsApp": false,
"optOutSMS": true,
"items": [
{
"sku": "01001"
}
]
}
Resposta
Esta API não gera um JSON de resposta, um status 200 significa que os dados foram salvos corretamente
Criar Pedido (V2)
Versão otimizada da API de integração de pedidos com suporte a marketplace, dados expandidos de produtos e atualização de pedidos existentes.
POST /{customer}/orders
Parâmetros de URL
| Parâmetro | Descrição |
|---|---|
| customer | Fornecido pelo nosso time de integração |
Parâmetros do corpo da requisição
| Parâmetro | Descrição |
|---|---|
| version | Deve ser 2 para usar esta versão da API |
| orderId | Número do pedido, identificação única na plataforma do cliente |
| userId | ID do usuário na plataforma do cliente não utilizar dados sensíveis |
| createdDate | Data de criação do pedido |
| authorizedDate | Data de autorização/pagamento do pedido (opcional) |
| estimatedDeliveryDate | Data de entrega prevista do pedido (opcional) |
| deliveredDate | Data de entrega efetiva do pedido (opcional) |
| modifiedDate | Data de última modificação do pedido (opcional) |
| name | Nome do cliente |
| E-mail do cliente - obrigatório para notificações por e-mail | |
| phone | Celular do cliente - obrigatório para notificações por SMS e WhatsApp |
| status | Status do pedido, created, authorized, paid, invoiced, shipped, delivered ou cancelled |
| optOutEmail | Indica se o cliente realizou opt-out para receber e-mails |
| optOutSMS | Indica se o cliente realizou opt-out para receber mensagens SMS |
| optOutWhatsApp | Indica se o cliente realizou opt-out para receber mensagens via WhatsApp |
| items | Array de itens do pedido (veja estrutura abaixo) |
Estrutura de items (V2)
| Parâmetro | Descrição |
|---|---|
| items.productId | SKU/ID principal do produto |
| items.sku | SKU da variante do produto (opcional) |
| items.skuName | Nome/descrição da variante (ex: "Tamanho P - Cor Azul") (opcional) |
| items.status | Status específico do item (opcional, usa status do pedido se omitido) |
| items.cancelled | Indica se o item foi cancelado (boolean) (opcional) |
| items.sellerInfo | Informações do seller/marketplace (opcional, veja estrutura abaixo) |
| items.productData | Dados completos do produto (opcional, veja estrutura abaixo) |
Estrutura de items.sellerInfo (Marketplace)
| Parâmetro | Descrição |
|---|---|
| items.sellerInfo.id | ID único do seller/vendedor |
| items.sellerInfo.name | Nome do seller/vendedor |
Estrutura de items.productData
| Parâmetro | Descrição |
|---|---|
| items.productData.name | Nome do produto |
| items.productData.productName | Nome do produto (alternativo) |
| items.productData.brand | Marca do produto |
| items.productData.brandName | Marca do produto (alternativo) |
| items.productData.mpn | Manufacturer Part Number (opcional) |
| items.productData.ean | Código EAN (opcional) |
| items.productData.gtin | Global Trade Item Number (opcional) |
| items.productData.url | URL da página do produto (será normalizada com a URL da loja) |
| items.productData.image | URL da imagem principal do produto |
| items.productData.categories | Array de categorias do produto |
| items.productData.categoryName | Nome da categoria (alternativo, será convertido em array) |
Exemplo de corpo da requisição (V2)
{
"version": 2,
"orderId": "P123456-1",
"userId": "12345",
"name": "João da Silva",
"email": "[email protected]",
"phone": "551191234-5678",
"createdDate": "2022-06-01 12:34",
"authorizedDate": "2022-06-01 13:00",
"estimatedDeliveryDate": "2022-06-15",
"deliveredDate": "2022-06-14",
"status": "delivered",
"optOutEmail": false,
"optOutWhatsApp": false,
"optOutSMS": true,
"items": [
{
"productId": "CAM-001",
"sku": "CAM-001-P-AZUL",
"skuName": "Tamanho P - Cor Azul",
"status": "authorized",
"cancelled": false,
"sellerInfo": {
"id": "SELLER123",
"name": "Loja Parceira ABC"
},
"productData": {
"name": "Camiseta Básica",
"brand": "Konfidency Store",
"mpn": "CAM001",
"ean": "7891234567890",
"url": "/produtos/camiseta-basica",
"image": "https://example.com/camiseta.jpg",
"categories": ["Roupas", "Camisetas", "Masculino"]
}
}
]
}
Diferenças da V2
| Característica | V1 | V2 |
|---|---|---|
| Atualização de pedidos existentes | Não (retorna duplicate) | Sim (atualiza dados) |
| Suporte a marketplace/sellers | Não | Sim |
| Dados expandidos de produtos | Não | Sim (productData) |
| Status por item | Não | Sim |
| Cancelamento por item | Não | Sim |
| Variantes de produto | Limitado | Completo (sku + skuName) |
| Normalização de URL de produtos | Não | Sim |
Resposta
{
"_id": "62b266a92bbbb599f720bb22",
"customer": "konfidency",
"orderId": "P123456-1",
"userId": "12345",
"name": "João S.",
"createdDate": "2022-06-01T15:34:00.000Z",
"authorizedDate": "2022-06-01T16:00:00.000Z",
"email": "[email protected]",
"phone": "551191234-5678",
"status": "authorized",
"optOutEmail": false,
"optOutSMS": true,
"optOutWhatsApp": false,
"__v": 0
}
Atualizar Pedido
Atualiza o status do pedido na plataforma Konfidency Reviews
PUT /{customer}/orders/{orderId}
Parâmetros de URL
| Parâmetro | Descrição |
|---|---|
| customer | Fornecido pelo nosso time de integração |
| orderId | Número do pedido, identificação única na plataforma do cliente |
Parâmetros do corpo da requisição
| Parâmetro | Descrição |
|---|---|
| created | Data de criação do pedido |
| status | Status, created, authorized, shipped ou delivered |
| authorizedDate | Data de pagamento do pedido |
| deliveredDate | Data de entrega do pedido |
Exemplo de corpo da requisição
{
"status": "authorized",
"authorizedDate": "2022-06-01 12:34"
}
Resposta
Esta API não gera um JSON de resposta, um status 200 significa que os dados foram salvos corretamente
Obter avaliações
Obtém as avaliações de acordo com os critérios de busca
GET /{customer}/reviews/all
POST /{customer}/reviews/all
O método POST permite filtros adicionais através do corpo da requisição (ver seção abaixo).
Parâmetros de URL
| Parâmetro | Descrição |
|---|---|
| customer | Fornecido pelo nosso time de integração |
Parâmetros de Query (todos opcionais)
| Parâmetro | Tipo | Descrição |
|---|---|---|
| sku | string | SKU do produto que deseja buscar |
| status | string | Status das avaliações a serem buscadas (consulte tabela abaixo) |
| order | string | Ordenação dos resultados (consulte tabela abaixo) |
| rating | integer | Filtrar por nota específica (1 a 5) |
| skip | integer | Quantidade de registros a serem omitidos (paginação) |
| tags | string | Filtrar por tags de moderação |
| topics | string | Filtrar por tópicos |
| from | string | Data inicial em formato YYYY-MM-DD |
| to | string | Data final em formato YYYY-MM-DD |
| hasText | boolean | Filtrar avaliações que possuem texto |
| hasPicture | boolean | Filtrar avaliações que possuem fotos |
| hasVideo | boolean | Filtrar avaliações que possuem vídeos |
| hasReply | boolean | Filtrar avaliações que possuem resposta do lojista |
| complete | boolean | Filtrar avaliações completas |
| autoModerated | boolean | Filtrar por avaliações moderadas automaticamente |
| includeOrderData | boolean | Incluir dados do pedido e seller (orderId, sellerInfo, orderName, orderEmail, orderPhone) |
Status de avaliações
| Status | Descrição |
|---|---|
| Omitir este campo ou enviar uma string vazia trará avaliações em qualquer status |
published | Avaliações publicadas |
removed | Avaliações reprovadas/removidas |
filtered | Avaliações filtradas pelo filtro de palavras proibidas |
pending | Avaliações na fila de moderação |
Ordenação de resultados
A ordenação segue o padrão campo,ordem. A ordem pode ser 1 para ascendente ou -1 para descendente.
| Campo | Descrição |
|---|---|
created | Data de envio da avaliação |
sku | SKU do produto |
rating | Nota da avaliação (1 a 5) |
helpful | Mais marcadas como úteis |
unhelpful | Mais marcadas como não úteis |
Parâmetros adicionais do método POST (corpo da requisição)
| Parâmetro | Tipo | Descrição |
|---|---|---|
| categories | array | Array de categorias de produtos para filtrar |
| sentiment | string | Filtrar por sentimento da avaliação (positive, negative, neutral) |
Exemplo de chamada GET com filtros
GET /konfidency/reviews/all?status=published&rating=5&hasPicture=true&from=2024-01-01&to=2024-12-31&skip=0
Exemplo de chamada GET com dados de pedido e seller
GET /konfidency/reviews/all?status=published&includeOrderData=true
Exemplo de corpo da requisição POST
{
"categories": ["Camisetas", "Masculino"],
"sentiment": "positive"
}
Os parâmetros de query permanecem os mesmos para o método POST e podem ser combinados com o corpo da requisição.
Resposta
{
"results": [
{
"_id": "630adeb56a21590014e4e200",
"helpful": 0,
"unhelpful": 0,
"verified": true,
"moderationTags": [],
"status": "published",
"created": "2022-08-28T03:19:17.374Z",
"pictures": [
{
"_id": "629f79d569ede80012ca7172",
"url": "https://uploads.konfidency.com.br/a98cd120-abe9-436f-b4de-78e8a0b52071"
}
],
"customer": "konfidency",
"userId": "a6c42ec0-ed92-4464-8dfc-fd7593472767",
"name": "Dominic T",
"sku": "307645",
"text": "Produto diferenciado. Do forno direto para a mesa. Lindíssimo. Não há quem não elogie à mesa.\nA comida servida nesta travessa fica até mais saborosa.😍",
"recommended": true,
"rating": 5,
"source": "sdk",
"__v": 1,
"attributes": [
{
"_id": "61f7162480088014770d11af",
"title": "Custo/benefício",
"type": "stars",
"scaleMin": 0,
"scaleMax": 5,
"value": 5
},
{
"_id": "627da5f10d1b0c410a99a1eb",
"title": "Qualidade",
"type": "stars",
"scaleMin": 0,
"scaleMax": 5,
"value": 5
}
],
"product": {
"_id": "6284033fb0b7371985a42200",
"customer": "konfidency",
"sku": "307645",
"name": "FOLHA TRAVESSA OVAL 33 CM X 23 CM",
"categories": [
"Ambientes",
"Sala de Jantar",
"Cozinha",
"Acessórios para Servir",
"Louças",
"Louças",
"Porcelana e cerâmica",
"Acessórios",
"Mesa",
"Travessas para Servir",
"Louças e Utensílios para Servir"
],
"url": "https://www.site.com.br/travessa-oval-33-cm-x-23-cm-verde-folha",
"image": "https://images.site.com.br/arquivos/ids/1857460-200-200/Travessa-Oval-33-Cm-X-23-Cm-Verde-Folha.jpg?v=637020162237200000"
}
}
],
"total": 30958
}
Campos de resposta
| campo | descrição |
|---|---|
| results._id | ID da avaliação |
| results._id | ID único da avaliação |
| results.sku | SKU do produto |
| results.name | nome do cliente que avaliou |
| results.rating | nota atribuída pelo cliente |
| results.text | texto de avaliação do cliente |
| results.helpful | quantidade de pessoas que consideraram a avaliação útil |
| results.unhelpful | quantidade de pessoas que não consideraram a avaliação útil |
| results.verified | indica se o cliente é um comprador verificado |
| results.created | data de envio da avaliação |
| results.recommended | indica se o cliente avaliou o produto positivamente |
| results.pictures | fotos enviadas com a avaliação |
| results.pictures._id | ID único da foto |
| results.pictures.url | URL da foto |
| results.orderId | número do pedido (apenas quando includeOrderData=true) |
| results.sellerInfo | informações do seller/marketplace (apenas quando includeOrderData=true) |
| results.sellerInfo.id | ID do seller (apenas quando includeOrderData=true) |
| results.sellerInfo.name | nome do seller (apenas quando includeOrderData=true) |
| results.orderName | nome do cliente no pedido (apenas quando includeOrderData=true) |
| results.orderEmail | e-mail do cliente no pedido (apenas quando includeOrderData=true) |
| results.orderPhone | telefone do cliente no pedido (apenas quando includeOrderData=true) |
| total | total de avaliações obtidas com os critérios de busca |
Obter perguntas
Obtém as perguntas de acordo com os critérios de busca
GET {customer}/questions/all
Parâmetros de URL
| Parâmetro | Descrição |
|---|---|
| customer | Fornecido pelo nosso time de integração |
| sku | SKU do produto que deseja buscar |
| status | Status das avaliações a serem buscadas (consulte tabela abaixo) |
| order | Ordenação dos resultados (consulte tabela abaixo) |
| skip | Quantidade de registros a serem omitidos (paginação) |
Status de perguntas
| Status | Descrição |
|---|---|
| Omitir este campo ou enviar uma string vazia trará perguntas publicadas |
all | Perguntas em qualquer status |
published | Perguntas publicadas |
removed | Perguntas reprovadas/removidas |
filtered | Perguntas filtradas pelo filtro de palavras proibidas |
sent | Perguntas na fila de moderação |
Resposta
{
"results": [
{
"_id": "669daa280a3d4e00135eb618",
"status": "published",
"created": "2024-07-22T00:39:04.246Z",
"customer": "demoshakers",
"sku": "9311078449466",
"name": "Tony S.",
"text": "esse produto tem em qual cor?",
"email": "[email protected]",
"__v": 1,
"reply": {
"unhelpful": 0,
"helpful": 0,
"created": "2024-11-05T12:22:48.259Z",
"text": "Tem azul, vermelha e amarela"
},
"product": {
"_id": "669cfc8d64e4456616dd9a6d",
"sku": "9311078449466",
"customer": "demoshakers",
"brand": "Bonne Soirée",
"categories": [
"Blazer e Jaqueta"
],
"image": "https://cdn.shopify.com/s/files/1/0875/0976/2362/files/BONNE_SOIREE-329.jpg?v=1716429969",
"isKit": false,
"modified": "2024-07-29T19:38:57-04:00",
"name": "Blazer Jeans Isabelle",
"url": "https://demo-shakers-pro.myshopify.com/products/blazer-jeans-isabelle-1",
"variants": [
"85259071",
"85259072",
"85259073",
"85259074"
],
"status": "active",
"sumRatings": 234,
"totalReviews": 51
}
}
],
"total": 1
}
Obter respostas pesquisa NPS
Obtém as respostas à pesquisa NPS
GET {customer}/nps/responses
Parâmetros de URL
| Parâmetro | Descrição |
|---|---|
| customer | Fornecido pelo nosso time de integração |
| sku | SKU do produto que deseja buscar |
| type | Classificação de resposta (consulte tabela abaixo) |
| sort | Ordenação dos resultados (consulte tabela abaixo) |
| skip | Quantidade de registros a serem omitidos (paginação) |
| from | Data inicial em formato YYYY-MM-DD (opcional) |
| to | Data final em formato YYYY-MM-DD (opcional) |
Classificação de respostas NPS
| Status | Descrição |
|---|---|
all | Todas as respostas |
promoters | Promotores (9 e 10) |
neutral | Neutros (7 e 8) |
detractors | Detratores (0 a 6) |
Ordenação de resultados
A ordenação segue o padrão campo,ordem. A ordem pode ser 1 para ascendente ou -1 para descendente.
| Campo | Descrição |
|---|---|
created | Data de envio da avaliação |
rating | Nota da avaliação (1 a 5) |
Resposta
{
"result": [
{
"_id": "674dad491dceb80011018301",
"customer": "stanley",
"surveyId": "663d4588fe42f52137cfd3a2",
"requestId": "6709e7cef1a3f86303b6242",
"name": "Antony S.",
"phone": "11912345678",
"orderId": "12345678",
"rating": 10,
"comment": "",
"partial": true,
"created": "2024-12-02T12:51:21.037Z",
"__v": 0
},
{
"_id": "674d96411dceb80011005121",
"customer": "stanley",
"surveyId": "663d4588fe42f52137cfd3a2",
"requestId": "6709e7cef1a3f86303b6241",
"name": "Bruce B.",
"phone": "11987654321",
"orderId": "12345679",
"rating": 10,
"comment": "Entrega rápida. ",
"partial": false,
"created": "2024-12-02T11:13:05.762Z",
"__v": 0,
"sendDate": "2024-12-02T11:13:17.390Z"
}
],
"total": 12740
}
Campos de resposta
| campo | descrição |
|---|---|
| results._id | ID da resposta |
| results.name | nome do cliente que respondeu |
| results.phone | telefone do cliente que respondeu |
| results.orderId | Número do pedido que gerou a pesquisa |
| results.partial | Indica se a resposta foi submetida ou se é parcial (gravada automaticamente) |
| results.rating | nota atribuída pelo cliente |
| results.comment | texto de comentário do cliente |
| results.created | data de primeiro envio da resposta |
| results.sendDate | data submissão da resposta final |
| total | total de respostas obtidas com os critérios de busca |
Moderação de Avaliações
Permite aprovar ou reprovar uma avaliação.
PUT /{customer}/reviews/{id}/moderate
Parâmetros de URL
| Parâmetro | Descrição |
|---|---|
| customer | Fornecido pelo nosso time de integração |
| id | ID da avaliação a ser moderada |
Parâmetros do corpo da requisição
| Parâmetro | Descrição |
|---|---|
| approved | Valor booleano: true para aprovar, false para reprovar |
Exemplo de corpo da requisição
{
"approved": true
}
Resposta
Esta API não gera um JSON de resposta. Um status 200 significa que a moderação foi registrada com sucesso.
Listar grupos de produtos
Obtém todos os grupos de produtos cadastrados.
GET /{customer}/products/groups/all
Parâmetros de URL
| Parâmetro | Descrição |
|---|---|
| customer | Fornecido pelo nosso time de integração |
Parâmetros de query (opcionais)
| Parâmetro | Descrição |
|---|---|
| skip | Quantidade de registros a serem omitidos (paginação) |
| limit | Quantidade máxima de registros a serem retornados |
Exemplo de resposta
{
"result": [
{
"_id": "6284033fb0b7371985a42200",
"customer": "konfidency",
"name": "Camiseta Masculina",
"skus": ["CAM-M-AZUL", "CAM-M-PRETA"],
"__v": 0,
"products": [
{
"_id": "6284033fb0b7371985a42300",
"customer": "konfidency",
"sku": "CAM-M-AZUL",
"brand": "Konfidency Store",
"categories": ["Roupas", "Camisetas", "Masculino"],
"image": "https://example.com/camiseta-masculina-azul.jpg",
"name": "Camiseta Masculina Azul",
"url": "https://example.com/camiseta-masculina-azul",
"variants": ["CAM-M-AZUL-P", "CAM-M-AZUL-M", "CAM-M-AZUL-G", "CAM-M-AZUL-GG"]
},
{
"_id": "6284033fb0b7371985a42301",
"customer": "konfidency",
"sku": "CAM-M-PRETA",
"brand": "Konfidency Store",
"categories": ["Roupas", "Camisetas", "Masculino"],
"image": "https://example.com/camiseta-masculina-preta.jpg",
"name": "Camiseta Masculina Preta",
"url": "https://example.com/camiseta-masculina-preta",
"variants": ["CAM-M-PRETA-P", "CAM-M-PRETA-M", "CAM-M-PRETA-G", "CAM-M-PRETA-GG"]
}
]
},
{
"_id": "6284033fb0b7371985a42201",
"customer": "konfidency",
"name": "Camiseta Feminina",
"skus": ["CAM-F-ROSA", "CAM-F-BRANCA"],
"__v": 0,
"products": [
{
"_id": "6284033fb0b7371985a42302",
"customer": "konfidency",
"sku": "CAM-F-ROSA",
"brand": "Konfidency Store",
"categories": ["Roupas", "Camisetas", "Feminino"],
"image": "https://example.com/camiseta-feminina-rosa.jpg",
"name": "Camiseta Feminina Rosa",
"url": "https://example.com/camiseta-feminina-rosa",
"variants": ["CAM-F-ROSA-P", "CAM-F-ROSA-M", "CAM-F-ROSA-G"]
},
{
"_id": "6284033fb0b7371985a42303",
"customer": "konfidency",
"sku": "CAM-F-BRANCA",
"brand": "Konfidency Store",
"categories": ["Roupas", "Camisetas", "Feminino"],
"image": "https://example.com/camiseta-feminina-branca.jpg",
"name": "Camiseta Feminina Branca",
"url": "https://example.com/camiseta-feminina-branca",
"variants": ["CAM-F-BRANCA-P", "CAM-F-BRANCA-M", "CAM-F-BRANCA-G"]
}
]
}
],
"total": 2
}
Campos de resposta
| campo | descrição |
|---|---|
| result._id | ID único do grupo |
| result.customer | Cliente ao qual o grupo pertence |
| result.name | Nome do grupo de produtos |
| result.skus | Array com os SKUs dos produtos do grupo |
| result.__v | Versão do documento |
| result.products | Array com dados completos dos produtos do grupo |
| result.products._id | ID único do produto |
| result.products.sku | SKU do produto |
| result.products.name | Nome do produto |
| result.products.brand | Marca do produto |
| result.products.categories | Categorias do produto |
| result.products.image | URL da imagem principal do produto |
| result.products.url | URL da página do produto |
| result.products.variants | Variantes/SKUs filhos do produto |
| total | Total de grupos cadastrados |
Obter grupo de produtos
Obtém os detalhes de um grupo de produtos específico.
GET /{customer}/products/groups/{id}
Parâmetros de URL
| Parâmetro | Descrição |
|---|---|
| customer | Fornecido pelo nosso time de integração |
| id | ID do grupo de produtos |
Exemplo de resposta
{
"_id": "6284033fb0b7371985a42200",
"customer": "konfidency",
"name": "Camiseta Masculina",
"skus": ["CAM-M-AZUL", "CAM-M-PRETA"],
"__v": 0,
"products": [
{
"_id": "6284033fb0b7371985a42300",
"customer": "konfidency",
"sku": "CAM-M-AZUL",
"brand": "Konfidency Store",
"categories": ["Roupas", "Camisetas", "Masculino"],
"image": "https://example.com/camiseta-masculina-azul.jpg",
"name": "Camiseta Masculina Azul",
"url": "https://example.com/camiseta-masculina-azul",
"variants": ["CAM-M-AZUL-P", "CAM-M-AZUL-M", "CAM-M-AZUL-G", "CAM-M-AZUL-GG"]
},
{
"_id": "6284033fb0b7371985a42301",
"customer": "konfidency",
"sku": "CAM-M-PRETA",
"brand": "Konfidency Store",
"categories": ["Roupas", "Camisetas", "Masculino"],
"image": "https://example.com/camiseta-masculina-preta.jpg",
"name": "Camiseta Masculina Preta",
"url": "https://example.com/camiseta-masculina-preta",
"variants": ["CAM-M-PRETA-P", "CAM-M-PRETA-M", "CAM-M-PRETA-G", "CAM-M-PRETA-GG"]
}
]
}
Campos de resposta
| campo | descrição |
|---|---|
| _id | ID único do grupo |
| customer | Cliente ao qual o grupo pertence |
| name | Nome do grupo de produtos |
| skus | Array com os SKUs dos produtos do grupo |
| __v | Versão do documento |
| products | Array com dados completos dos produtos do grupo |
| products._id | ID único do produto |
| products.sku | SKU do produto |
| products.name | Nome do produto |
| products.brand | Marca do produto |
| products.categories | Categorias do produto |
| products.image | URL da imagem principal do produto |
| products.url | URL da página do produto |
| products.variants | Variantes/SKUs filhos do produto (ex: tamanhos) |
Criar grupo de produtos
Cria um novo grupo de produtos.
POST /{customer}/products/groups
Parâmetros de URL
| Parâmetro | Descrição |
|---|---|
| customer | Fornecido pelo nosso time de integração |
Parâmetros do corpo da requisição
| Parâmetro | Descrição |
|---|---|
| name | Nome do grupo de produtos |
| skus | Array com os SKUs dos produtos a serem agrupados |
Exemplo de corpo da requisição
{
"name": "Camiseta Masculina",
"skus": ["CAM-M-AZUL", "CAM-M-PRETA"]
}
Exemplo de resposta
{
"_id": "6284033fb0b7371985a42200",
"customer": "konfidency",
"name": "Camiseta Masculina",
"skus": ["CAM-M-AZUL", "CAM-M-PRETA"],
"__v": 0,
"products": [
{
"_id": "6284033fb0b7371985a42300",
"customer": "konfidency",
"sku": "CAM-M-AZUL",
"brand": "Konfidency Store",
"categories": ["Roupas", "Camisetas", "Masculino"],
"image": "https://example.com/camiseta-masculina-azul.jpg",
"name": "Camiseta Masculina Azul",
"url": "https://example.com/camiseta-masculina-azul",
"variants": ["CAM-M-AZUL-P", "CAM-M-AZUL-M", "CAM-M-AZUL-G", "CAM-M-AZUL-GG"]
},
{
"_id": "6284033fb0b7371985a42301",
"customer": "konfidency",
"sku": "CAM-M-PRETA",
"brand": "Konfidency Store",
"categories": ["Roupas", "Camisetas", "Masculino"],
"image": "https://example.com/camiseta-masculina-preta.jpg",
"name": "Camiseta Masculina Preta",
"url": "https://example.com/camiseta-masculina-preta",
"variants": ["CAM-M-PRETA-P", "CAM-M-PRETA-M", "CAM-M-PRETA-G", "CAM-M-PRETA-GG"]
}
]
}
Resposta de erro (409 - Conflito)
Caso algum SKU já pertença a outro grupo, a API retornará status 409 com os SKUs conflitantes:
{
"message": "Alguns SKUs já pertencem a outros grupos",
"conflictingSkus": ["CAM-M-AZUL"]
}
Campos de resposta
| campo | descrição |
|---|---|
| _id | ID único do grupo criado |
| customer | Cliente ao qual o grupo pertence |
| name | Nome do grupo de produtos |
| skus | Array com os SKUs dos produtos do grupo |
| __v | Versão do documento |
| products | Array com dados completos dos produtos do grupo |
| products._id | ID único do produto |
| products.sku | SKU do produto |
| products.name | Nome do produto |
| products.brand | Marca do produto |
| products.categories | Categorias do produto |
| products.image | URL da imagem principal do produto |
| products.url | URL da página do produto |
| products.variants | Variantes/SKUs filhos do produto (ex: tamanhos) |
Atualizar grupo de produtos
Atualiza um grupo de produtos existente.
PUT /{customer}/products/groups/{id}
Parâmetros de URL
| Parâmetro | Descrição |
|---|---|
| customer | Fornecido pelo nosso time de integração |
| id | ID do grupo de produtos a ser atualizado |
Parâmetros do corpo da requisição
| Parâmetro | Descrição |
|---|---|
| name | Nome do grupo de produtos |
| skus | Array com os SKUs dos produtos a serem agrupados |
Exemplo de corpo da requisição
{
"name": "Camiseta Masculina",
"skus": ["CAM-M-AZUL", "CAM-M-PRETA", "CAM-M-VERDE"]
}
Exemplo de resposta
{
"_id": "6284033fb0b7371985a42200",
"customer": "konfidency",
"name": "Camiseta Masculina",
"skus": ["CAM-M-AZUL", "CAM-M-PRETA", "CAM-M-VERDE"],
"__v": 0,
"products": [
{
"_id": "6284033fb0b7371985a42300",
"customer": "konfidency",
"sku": "CAM-M-AZUL",
"brand": "Konfidency Store",
"categories": ["Roupas", "Camisetas", "Masculino"],
"image": "https://example.com/camiseta-masculina-azul.jpg",
"name": "Camiseta Masculina Azul",
"url": "https://example.com/camiseta-masculina-azul",
"variants": ["CAM-M-AZUL-P", "CAM-M-AZUL-M", "CAM-M-AZUL-G", "CAM-M-AZUL-GG"]
},
{
"_id": "6284033fb0b7371985a42301",
"customer": "konfidency",
"sku": "CAM-M-PRETA",
"brand": "Konfidency Store",
"categories": ["Roupas", "Camisetas", "Masculino"],
"image": "https://example.com/camiseta-masculina-preta.jpg",
"name": "Camiseta Masculina Preta",
"url": "https://example.com/camiseta-masculina-preta",
"variants": ["CAM-M-PRETA-P", "CAM-M-PRETA-M", "CAM-M-PRETA-G", "CAM-M-PRETA-GG"]
},
{
"_id": "6284033fb0b7371985a42305",
"customer": "konfidency",
"sku": "CAM-M-VERDE",
"brand": "Konfidency Store",
"categories": ["Roupas", "Camisetas", "Masculino"],
"image": "https://example.com/camiseta-masculina-verde.jpg",
"name": "Camiseta Masculina Verde",
"url": "https://example.com/camiseta-masculina-verde",
"variants": ["CAM-M-VERDE-P", "CAM-M-VERDE-M", "CAM-M-VERDE-G", "CAM-M-VERDE-GG"]
}
]
}
Resposta de erro (409 - Conflito)
Caso algum SKU já pertença a outro grupo, a API retornará status 409 com os SKUs conflitantes:
{
"message": "Alguns SKUs já pertencem a outros grupos",
"conflictingSkus": ["CAM-M-VERDE"]
}
Campos de resposta
| campo | descrição |
|---|---|
| _id | ID único do grupo |
| customer | Cliente ao qual o grupo pertence |
| name | Nome atualizado do grupo de produtos |
| skus | Array atualizado com os SKUs do grupo |
| __v | Versão do documento |
| products | Array com dados completos dos produtos do grupo |
| products._id | ID único do produto |
| products.sku | SKU do produto |
| products.name | Nome do produto |
| products.brand | Marca do produto |
| products.categories | Categorias do produto |
| products.image | URL da imagem principal do produto |
| products.url | URL da página do produto |
| products.variants | Variantes/SKUs filhos do produto (ex: tamanhos) |
Deletar grupo de produtos
Remove um grupo de produtos.
DELETE /{customer}/products/groups/{id}
Parâmetros de URL
| Parâmetro | Descrição |
|---|---|
| customer | Fornecido pelo nosso time de integração |
| id | ID do grupo de produtos a ser deletado |
Resposta
Esta API não gera um JSON de resposta. Um status 200 significa que o grupo foi deletado com sucesso.