Admin API
Esta API reúne acciones administrativas. Nunca debe ser llamada desde el client-side.
- Autenticación
- Obtener enlace de evaluación
- Crear pedido
- Crear pedido (V2)
- Actualizar pedido
- Obtener evaluaciones
- Obtener preguntas
- Obtener respuestas encuesta NPS
- Moderación de evaluaciones
- Listar grupos de productos
- Obtener grupo de productos
- Crear grupo de productos
- Actualizar grupo de productos
- Eliminar grupo de productos
Autenticación
Debes llamar a la API de Auth0, nuestro proveedor de autenticación, para poder utilizar los demás endpoints de nuestra API administrativa.
POST https://reviews-api.konfidency.com.br/oauth/token
Campos del cuerpo de la solicitud (JSON)
| Parámetro | Descripción |
|---|---|
| audience | Fijo: https://reviews-api.konfidency.com.br |
| grant_type | Fijo: client_credentials |
| client_id | ID de cliente enviado por el equipo de integración |
| client_secret | Token secreto enviado por el equipo de integración |
Ejemplo de cuerpo de la solicitud
{
"audience": "https://reviews-api.konfidency.com.br",
"grant_type": "client_credentials",
"client_id": "eSRTjDtxTaprkd6Yb97DouqFORbTT1dV",
"client_secret": "cSrP6TF1ktSAH1IV1p24Vztd9Lc4AoLA62f0KIPU1vkymSjd7a5QzpTy0Tqo51PZ"
}
Ejemplo de Respuesta
{
"access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
"expires_in": 86400,
"token_type": "Bearer"
}
Campos
| campo | descripción |
|---|---|
| access_token | token de acceso generado |
| expires_in | tiempo de validez del token |
| token_type | tipo de token, siempre será Bearer |
Enlace de evaluación
Permite obtener el enlace de evaluación para un pedido
GET /{customer}/orders/{orderId}/ratelink
Parámetros de URL
| Parámetro | Descripción |
|---|---|
| customer | Proporcionado por nuestro equipo de integración |
| orderId | número del pedido en su plataforma |
Ejemplo de Respuesta
{
"link": "https://www.kfy.app/rate/konfidency/62b266a92bbbb599f720bb22/123456-1"
}
Campos de la respuesta
| campo | descripción |
|---|---|
| link | URL única para evaluación del pedido |
Crear Pedido
Integra un nuevo pedido en la plataforma Konfidency Reviews
POST /{customer}/orders
Parámetros de URL
| Parámetro | Descripción |
|---|---|
| customer | Proporcionado por nuestro equipo de integración |
Parámetros del cuerpo de la solicitud
| Parámetro | Descripción |
|---|---|
| orderId | Número del pedido, identificación única en la plataforma del cliente |
| createdDate | Fecha de creación del pedido |
| userId | ID del usuario en la plataforma del cliente no utilizar datos sensibles |
| status | Estado del producto, created, authorized, shipped o delivered |
| estimatedDeliveryDate | Fecha de entrega prevista del pedido |
| deliveredDate | Fecha de entrega del pedido |
| name | Nombre del cliente |
| Correo electrónico del cliente - obligatorio para notificaciones por correo electrónico | |
| phone | Teléfono móvil del cliente - obligatorio para notificaciones por SMS y WhatsApp |
| pointOfSale | Origen del pedido (ej: "Tienda Física", "E-commerce", "Marketplace") |
| deliveryMethod | Método de entrega (ej: "Correos", "Transportadora", "Retiro") |
| optOutEmail | Indica si el cliente realizó opt-out para recibir correos electrónicos |
| optOutSMS | Indica si el cliente realizó opt-out para recibir mensajes SMS |
| optOutWhatsApp | Indica si el cliente realizó opt-out para recibir mensajes vía WhatsApp |
| items.sku | SKU del producto |
Ejemplo de cuerpo de la solicitud
{
"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",
"pointOfSale": "E-commerce",
"deliveryMethod": "Correos",
"optOutEmail": false,
"optOutWhatsApp": false,
"optOutSMS": true,
"items": [
{
"sku": "01001"
}
]
}
Respuesta
Esta API no genera un JSON de respuesta, un estado 200 significa que los datos se guardaron correctamente
Crear Pedido (V2)
Versión optimizada de la API de integración de pedidos con soporte para marketplace, datos expandidos de productos y actualización de pedidos existentes.
POST /{customer}/orders
Parámetros de URL
| Parámetro | Descripción |
|---|---|
| customer | Proporcionado por nuestro equipo de integración |
Parámetros del cuerpo de la solicitud
| Parámetro | Descripción |
|---|---|
| version | Debe ser 2 para usar esta versión de la API |
| orderId | Número del pedido, identificación única en la plataforma del cliente |
| userId | ID del usuario en la plataforma del cliente no utilizar datos sensibles |
| createdDate | Fecha de creación del pedido |
| authorizedDate | Fecha de autorización/pago del pedido (opcional) |
| estimatedDeliveryDate | Fecha de entrega prevista del pedido (opcional) |
| deliveredDate | Fecha de entrega efectiva del pedido (opcional) |
| modifiedDate | Fecha de última modificación del pedido (opcional) |
| name | Nombre del cliente |
| Correo electrónico del cliente - obligatorio para notificaciones por correo electrónico | |
| phone | Teléfono móvil del cliente - obligatorio para notificaciones por SMS y WhatsApp |
| pointOfSale | Origen del pedido (ej: "Tienda Física", "E-commerce", "Marketplace") (opcional) |
| deliveryMethod | Método de entrega (ej: "Correos", "Transportadora", "Retiro") (opcional) |
| status | Estado del pedido, created, authorized, paid, invoiced, shipped, delivered o cancelled |
| optOutEmail | Indica si el cliente realizó opt-out para recibir correos electrónicos |
| optOutSMS | Indica si el cliente realizó opt-out para recibir mensajes SMS |
| optOutWhatsApp | Indica si el cliente realizó opt-out para recibir mensajes vía WhatsApp |
| items | Array de ítems del pedido (ver estructura abajo) |
Estructura de items (V2)
| Parámetro | Descripción |
|---|---|
| items.productId | SKU/ID principal del producto |
| items.sku | SKU de la variante del producto (opcional) |
| items.skuName | Nombre/descripción de la variante (ej: "Talle P - Color Azul") (opcional) |
| items.status | Estado específico del ítem (opcional, usa estado del pedido si se omite) |
| items.cancelled | Indica si el ítem fue cancelado (boolean) (opcional) |
| items.sellerInfo | Información del seller/marketplace (opcional, ver estructura abajo) |
| items.productData | Datos completos del producto (opcional, ver estructura abajo) |
Estructura de items.sellerInfo (Marketplace)
| Parámetro | Descripción |
|---|---|
| items.sellerInfo.id | ID único del seller/vendedor |
| items.sellerInfo.name | Nombre del seller/vendedor |
Estructura de items.productData
| Parámetro | Descripción |
|---|---|
| items.productData.name | Nombre del producto |
| items.productData.productName | Nombre del producto (alternativo) |
| items.productData.brand | Marca del producto |
| items.productData.brandName | Marca del producto (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 de la página del producto (será normalizada con la URL de la tienda) |
| items.productData.image | URL de la imagen principal del producto |
| items.productData.categories | Array de categorías del producto |
| items.productData.categoryName | Nombre de la categoría (alternativo, será convertido en array) |
Ejemplo de cuerpo de la solicitud (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",
"pointOfSale": "E-commerce",
"deliveryMethod": "Transportadora",
"status": "delivered",
"optOutEmail": false,
"optOutWhatsApp": false,
"optOutSMS": true,
"items": [
{
"productId": "CAM-001",
"sku": "CAM-001-P-AZUL",
"skuName": "Talle P - Color Azul",
"status": "authorized",
"cancelled": false,
"sellerInfo": {
"id": "SELLER123",
"name": "Tienda Partner ABC"
},
"productData": {
"name": "Camiseta Básica",
"brand": "Konfidency Store",
"mpn": "CAM001",
"ean": "7891234567890",
"url": "/productos/camiseta-basica",
"image": "https://example.com/camiseta.jpg",
"categories": ["Ropa", "Camisetas", "Masculino"]
}
}
]
}
Diferencias de la V2
| Característica | V1 | V2 |
|---|---|---|
| Actualización de pedidos existentes | No (retorna duplicate) | Sí (actualiza datos) |
| Soporte a marketplace/sellers | No | Sí |
| Datos expandidos de productos | No | Sí (productData) |
| Estado por ítem | No | Sí |
| Cancelación por ítem | No | Sí |
| Variantes de producto | Limitado | Completo (sku + skuName) |
| Normalización de URL de productos | No | Sí |
Respuesta
{
"_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
}
Actualizar Pedido
Actualiza el estado del pedido en la plataforma Konfidency Reviews
PUT /{customer}/orders/{orderId}
Parámetros de URL
| Parámetro | Descripción |
|---|---|
| customer | Proporcionado por nuestro equipo de integración |
| orderId | Número del pedido, identificación única en la plataforma del cliente |
Parámetros del cuerpo de la solicitud
| Parámetro | Descripción |
|---|---|
| created | Fecha de creación del pedido |
| status | Estado, created, authorized, shipped o delivered |
| authorizedDate | Fecha de pago del pedido |
| deliveredDate | Fecha de entrega del pedido |
Ejemplo de cuerpo de la solicitud
{
"status": "authorized",
"authorizedDate": "2022-06-01 12:34"
}
Respuesta
Esta API no genera un JSON de respuesta, un estado 200 significa que los datos se guardaron correctamente
Obtener evaluaciones
Obtiene las evaluaciones según los criterios de búsqueda
GET /{customer}/reviews/all
POST /{customer}/reviews/all
El método POST permite filtros adicionales a través del cuerpo de la solicitud (ver sección abajo).
Parámetros de URL
| Parámetro | Descripción |
|---|---|
| customer | Proporcionado por nuestro equipo de integración |
Parámetros de Query (todos opcionales)
| Parámetro | Tipo | Descripción |
|---|---|---|
| sku | string | SKU del producto que desea buscar |
| status | string | Estado de las evaluaciones a buscar (consulte tabla abajo) |
| order | string | Ordenación de los resultados (consulte tabla abajo) |
| rating | integer | Filtrar por calificación específica (1 a 5) |
| skip | integer | Cantidad de registros a omitir (paginación) |
| tags | string | Filtrar por tags de moderación |
| topics | string | Filtrar por tópicos |
| from | string | Fecha inicial en formato YYYY-MM-DD |
| to | string | Fecha final en formato YYYY-MM-DD |
| hasText | boolean | Filtrar evaluaciones que poseen texto |
| hasPicture | boolean | Filtrar evaluaciones que poseen fotos |
| hasVideo | boolean | Filtrar evaluaciones que poseen videos |
| hasReply | boolean | Filtrar evaluaciones que poseen respuesta del comerciante |
| complete | boolean | Filtrar evaluaciones completas |
| autoModerated | boolean | Filtrar por evaluaciones moderadas automáticamente |
| includeOrderData | boolean | Incluir datos del pedido y seller (orderId, sellerInfo, orderName, orderEmail, orderPhone) |
Estado de evaluaciones
| Estado | Descripción |
|---|---|
| Omitir este campo o enviar una cadena vacía traerá evaluaciones en cualquier estado |
published | Evaluaciones publicadas |
removed | Evaluaciones rechazadas/eliminadas |
filtered | Evaluaciones filtradas por el filtro de palabras prohibidas |
pending | Evaluaciones en la cola de moderación |
Ordenación de resultados
La ordenación sigue el patrón campo,orden. El orden puede ser 1 para ascendente o -1 para descendente.
| Campo | Descripción |
|---|---|
created | Fecha de envío de la evaluación |
moderatedAt | Fecha de moderación de la evaluación |
sku | SKU del producto |
rating | Calificación de la evaluación (1 a 5) |
helpful | Más marcadas como útiles |
unhelpful | Más marcadas como no útiles |
Parámetros adicionales del método POST (cuerpo de la solicitud)
| Parámetro | Tipo | Descripción |
|---|---|---|
| categories | array | Array de categorías de productos para filtrar |
| sentiment | string | Filtrar por sentimiento de la evaluación (positive, negative, neutral) |
Ejemplo de llamada GET con filtros
GET /konfidency/reviews/all?status=published&rating=5&hasPicture=true&from=2024-01-01&to=2024-12-31&skip=0
Ejemplo de llamada GET con datos de pedido y seller
GET /konfidency/reviews/all?status=published&includeOrderData=true
Ejemplo de cuerpo de la solicitud POST
{
"categories": ["Camisetas", "Masculino"],
"sentiment": "positive"
}
Los parámetros de query permanecen los mismos para el método POST y pueden combinarse con el cuerpo de la solicitud.
Respuesta
{
"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": "Producto diferenciado. Del horno directo a la mesa. Hermoso. No hay quien no lo elogie en la mesa.\nLa comida servida en esta bandeja queda aún más sabrosa.😍",
"recommended": true,
"rating": 5,
"source": "sdk",
"__v": 1,
"attributes": [
{
"_id": "61f7162480088014770d11af",
"title": "Costo/beneficio",
"type": "stars",
"scaleMin": 0,
"scaleMax": 5,
"value": 5
},
{
"_id": "627da5f10d1b0c410a99a1eb",
"title": "Calidad",
"type": "stars",
"scaleMin": 0,
"scaleMax": 5,
"value": 5
}
],
"product": {
"_id": "6284033fb0b7371985a42200",
"customer": "konfidency",
"sku": "307645",
"name": "HOJA BANDEJA OVAL 33 CM X 23 CM",
"categories": [
"Ambientes",
"Comedor",
"Cocina",
"Accesorios para Servir",
"Vajilla",
"Vajilla",
"Porcelana y cerámica",
"Accesorios",
"Mesa",
"Bandejas para Servir",
"Vajilla y Utensilios para Servir"
],
"url": "https://www.site.com.br/bandeja-oval-33-cm-x-23-cm-verde-hoja",
"image": "https://images.site.com.br/arquivos/ids/1857460-200-200/Bandeja-Oval-33-Cm-X-23-Cm-Verde-Hoja.jpg?v=637020162237200000"
}
}
],
"total": 30958
}
Campos de respuesta
| campo | descripción |
|---|---|
| results._id | ID de la evaluación |
| results._id | ID único de la evaluación |
| results.sku | SKU del producto |
| results.name | nombre del cliente que evaluó |
| results.rating | calificación otorgada por el cliente |
| results.text | texto de evaluación del cliente |
| results.helpful | cantidad de personas que consideraron la evaluación útil |
| results.unhelpful | cantidad de personas que no consideraron la evaluación útil |
| results.verified | indica si el cliente es un comprador verificado |
| results.created | fecha de envío de la evaluación |
| results.recommended | indica si el cliente evaluó el producto positivamente |
| results.pictures | fotos enviadas con la evaluación |
| results.pictures._id | ID único de la foto |
| results.pictures.url | URL de la foto |
| results.orderId | número del pedido (solo cuando includeOrderData=true) |
| results.sellerInfo | información del seller/marketplace (solo cuando includeOrderData=true) |
| results.sellerInfo.id | ID del seller (solo cuando includeOrderData=true) |
| results.sellerInfo.name | nombre del seller (solo cuando includeOrderData=true) |
| results.orderName | nombre del cliente en el pedido (solo cuando includeOrderData=true) |
| results.orderEmail | correo electrónico del cliente en el pedido (solo cuando includeOrderData=true) |
| results.orderPhone | teléfono del cliente en el pedido (solo cuando includeOrderData=true) |
| total | total de evaluaciones obtenidas con los criterios de búsqueda |
Obtener preguntas
Obtiene las preguntas según los criterios de búsqueda
GET {customer}/questions/all
Parámetros de URL
| Parámetro | Descripción |
|---|---|
| customer | Proporcionado por nuestro equipo de integración |
| sku | SKU del producto que desea buscar |
| status | Estado de las evaluaciones a buscar (consulte tabla abajo) |
| order | Ordenación de los resultados (consulte tabla abajo) |
| skip | Cantidad de registros a omitir (paginación) |
Estado de preguntas
| Estado | Descripción |
|---|---|
| Omitir este campo o enviar una cadena vacía traerá preguntas publicadas |
all | Preguntas en cualquier estado |
published | Preguntas publicadas |
removed | Preguntas rechazadas/eliminadas |
filtered | Preguntas filtradas por el filtro de palabras prohibidas |
sent | Preguntas en la cola de moderación |
Respuesta
{
"results": [
{
"_id": "669daa280a3d4e00135eb618",
"status": "published",
"created": "2024-07-22T00:39:04.246Z",
"customer": "demoshakers",
"sku": "9311078449466",
"name": "Tony S.",
"text": "¿este producto tiene en qué color?",
"email": "[email protected]",
"__v": 1,
"reply": {
"unhelpful": 0,
"helpful": 0,
"created": "2024-11-05T12:22:48.259Z",
"text": "Tiene azul, rojo y amarillo"
},
"product": {
"_id": "669cfc8d64e4456616dd9a6d",
"sku": "9311078449466",
"customer": "demoshakers",
"brand": "Bonne Soirée",
"categories": [
"Blazer y Chaqueta"
],
"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
}
Obtener respuestas encuesta NPS
Obtiene las respuestas de la encuesta NPS
GET {customer}/nps/responses
Parámetros de URL
| Parámetro | Descripción |
|---|---|
| customer | Proporcionado por nuestro equipo de integración |
| sku | SKU del producto que desea buscar |
| type | Clasificación de respuesta (consulte tabla abajo) |
| sort | Ordenación de los resultados (consulte tabla abajo) |
| skip | Cantidad de registros a omitir (paginación) |
| from | Fecha inicial en formato YYYY-MM-DD (opcional) |
| to | Fecha final en formato YYYY-MM-DD (opcional) |
Clasificación de respuestas NPS
| Estado | Descripción |
|---|---|
all | Todas las respuestas |
promoters | Promotores (9 y 10) |
neutral | Neutros (7 y 8) |
detractors | Detractores (0 a 6) |
Ordenación de resultados
La ordenación sigue el patrón campo,orden. El orden puede ser 1 para ascendente o -1 para descendente.
| Campo | Descripción |
|---|---|
created | Fecha de envío de la evaluación |
rating | Calificación de la evaluación (1 a 5) |
Respuesta
{
"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 respuesta
| campo | descripción |
|---|---|
| results._id | ID de la respuesta |
| results.name | nombre del cliente que respondió |
| results.phone | teléfono del cliente que respondió |
| results.orderId | Número del pedido que generó la encuesta |
| results.partial | Indica si la respuesta fue enviada o si es parcial (guardada automáticamente) |
| results.rating | calificación otorgada por el cliente |
| results.comment | texto de comentario del cliente |
| results.created | fecha de primer envío de la respuesta |
| results.sendDate | fecha de envío de la respuesta final |
| total | total de respuestas obtenidas con los criterios de búsqueda |
Moderación de Evaluaciones
Permite aprobar o rechazar una evaluación.
PUT /{customer}/reviews/{id}/moderate
Parámetros de URL
| Parámetro | Descripción |
|---|---|
| customer | Proporcionado por nuestro equipo de integración |
| id | ID de la evaluación a moderar |
Parámetros del cuerpo de la solicitud
| Parámetro | Descripción |
|---|---|
| approved | Valor booleano: true para aprobar, false para rechazar |
Ejemplo de cuerpo de la solicitud
{
"approved": true
}
Respuesta
Esta API no genera un JSON de respuesta. Un estado 200 significa que la moderación fue registrada con éxito.
Listar grupos de productos
Obtiene todos los grupos de productos registrados.
GET /{customer}/products/groups/all
Parámetros de URL
| Parámetro | Descripción |
|---|---|
| customer | Proporcionado por nuestro equipo de integración |
Parámetros de query (opcionales)
| Parámetro | Descripción |
|---|---|
| skip | Cantidad de registros a omitir (paginación) |
| limit | Cantidad máxima de registros a retornar |
Ejemplo de respuesta
{
"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": ["Ropa", "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": ["Ropa", "Camisetas", "Masculino"],
"image": "https://example.com/camiseta-masculina-preta.jpg",
"name": "Camiseta Masculina Negra",
"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 Femenina",
"skus": ["CAM-F-ROSA", "CAM-F-BRANCA"],
"__v": 0,
"products": [
{
"_id": "6284033fb0b7371985a42302",
"customer": "konfidency",
"sku": "CAM-F-ROSA",
"brand": "Konfidency Store",
"categories": ["Ropa", "Camisetas", "Femenino"],
"image": "https://example.com/camiseta-femenina-rosa.jpg",
"name": "Camiseta Femenina Rosa",
"url": "https://example.com/camiseta-femenina-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": ["Ropa", "Camisetas", "Femenino"],
"image": "https://example.com/camiseta-femenina-branca.jpg",
"name": "Camiseta Femenina Blanca",
"url": "https://example.com/camiseta-femenina-branca",
"variants": ["CAM-F-BRANCA-P", "CAM-F-BRANCA-M", "CAM-F-BRANCA-G"]
}
]
}
],
"total": 2
}
Campos de respuesta
| campo | descripción |
|---|---|
| result._id | ID único del grupo |
| result.customer | Cliente al cual pertenece el grupo |
| result.name | Nombre del grupo de productos |
| result.skus | Array con los SKUs de los productos del grupo |
| result.__v | Versión del documento |
| result.products | Array con datos completos de los productos del grupo |
| result.products._id | ID único del producto |
| result.products.sku | SKU del producto |
| result.products.name | Nombre del producto |
| result.products.brand | Marca del producto |
| result.products.categories | Categorías del producto |
| result.products.image | URL de la imagen principal del producto |
| result.products.url | URL de la página del producto |
| result.products.variants | Variantes/SKUs hijos del producto |
| total | Total de grupos registrados |
Obtener grupo de productos
Obtiene los detalles de un grupo de productos específico.
GET /{customer}/products/groups/{id}
Parámetros de URL
| Parámetro | Descripción |
|---|---|
| customer | Proporcionado por nuestro equipo de integración |
| id | ID del grupo de productos |
Ejemplo de respuesta
{
"_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": ["Ropa", "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": ["Ropa", "Camisetas", "Masculino"],
"image": "https://example.com/camiseta-masculina-preta.jpg",
"name": "Camiseta Masculina Negra",
"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 respuesta
| campo | descripción |
|---|---|
| _id | ID único del grupo |
| customer | Cliente al cual pertenece el grupo |
| name | Nombre del grupo de productos |
| skus | Array con los SKUs de los productos del grupo |
| __v | Versión del documento |
| products | Array con datos completos de los productos del grupo |
| products._id | ID único del producto |
| products.sku | SKU del producto |
| products.name | Nombre del producto |
| products.brand | Marca del producto |
| products.categories | Categorías del producto |
| products.image | URL de la imagen principal del producto |
| products.url | URL de la página del producto |
| products.variants | Variantes/SKUs hijos del producto (ej: talles) |
Crear grupo de productos
Crea un nuevo grupo de productos.
POST /{customer}/products/groups
Parámetros de URL
| Parámetro | Descripción |
|---|---|
| customer | Proporcionado por nuestro equipo de integración |
Parámetros del cuerpo de la solicitud
| Parámetro | Descripción |
|---|---|
| name | Nombre del grupo de productos |
| skus | Array con los SKUs de los productos a agrupar |
Ejemplo de cuerpo de la solicitud
{
"name": "Camiseta Masculina",
"skus": ["CAM-M-AZUL", "CAM-M-PRETA"]
}
Ejemplo de respuesta
{
"_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": ["Ropa", "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": ["Ropa", "Camisetas", "Masculino"],
"image": "https://example.com/camiseta-masculina-preta.jpg",
"name": "Camiseta Masculina Negra",
"url": "https://example.com/camiseta-masculina-preta",
"variants": ["CAM-M-PRETA-P", "CAM-M-PRETA-M", "CAM-M-PRETA-G", "CAM-M-PRETA-GG"]
}
]
}
Respuesta de error (409 - Conflicto)
Caso algún SKU ya pertenezca a otro grupo, la API retornará estado 409 con los SKUs conflictivos:
{
"message": "Algunos SKUs ya pertenecen a otros grupos",
"conflictingSkus": ["CAM-M-AZUL"]
}
Campos de respuesta
| campo | descripción |
|---|---|
| _id | ID único del grupo creado |
| customer | Cliente al cual pertenece el grupo |
| name | Nombre del grupo de productos |
| skus | Array con los SKUs de los productos del grupo |
| __v | Versión del documento |
| products | Array con datos completos de los productos del grupo |
| products._id | ID único del producto |
| products.sku | SKU del producto |
| products.name | Nombre del producto |
| products.brand | Marca del producto |
| products.categories | Categorías del producto |
| products.image | URL de la imagen principal del producto |
| products.url | URL de la página del producto |
| products.variants | Variantes/SKUs hijos del producto (ej: talles) |
Actualizar grupo de productos
Actualiza un grupo de productos existente.
PUT /{customer}/products/groups/{id}
Parámetros de URL
| Parámetro | Descripción |
|---|---|
| customer | Proporcionado por nuestro equipo de integración |
| id | ID del grupo de productos a actualizar |
Parámetros del cuerpo de la solicitud
| Parámetro | Descripción |
|---|---|
| name | Nombre del grupo de productos |
| skus | Array con los SKUs de los productos a agrupar |
Ejemplo de cuerpo de la solicitud
{
"name": "Camiseta Masculina",
"skus": ["CAM-M-AZUL", "CAM-M-PRETA", "CAM-M-VERDE"]
}
Ejemplo de respuesta
{
"_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": ["Ropa", "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": ["Ropa", "Camisetas", "Masculino"],
"image": "https://example.com/camiseta-masculina-preta.jpg",
"name": "Camiseta Masculina Negra",
"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": ["Ropa", "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"]
}
]
}
Respuesta de error (409 - Conflicto)
Caso algún SKU ya pertenezca a otro grupo, la API retornará estado 409 con los SKUs conflictivos:
{
"message": "Algunos SKUs ya pertenecen a otros grupos",
"conflictingSkus": ["CAM-M-VERDE"]
}
Campos de respuesta
| campo | descripción |
|---|---|
| _id | ID único del grupo |
| customer | Cliente al cual pertenece el grupo |
| name | Nombre actualizado del grupo de productos |
| skus | Array actualizado con los SKUs del grupo |
| __v | Versión del documento |
| products | Array con datos completos de los productos del grupo |
| products._id | ID único del producto |
| products.sku | SKU del producto |
| products.name | Nombre del producto |
| products.brand | Marca del producto |
| products.categories | Categorías del producto |
| products.image | URL de la imagen principal del producto |
| products.url | URL de la página del producto |
| products.variants | Variantes/SKUs hijos del producto (ej: talles) |
Eliminar grupo de productos
Elimina un grupo de productos.
DELETE /{customer}/products/groups/{id}
Parámetros de URL
| Parámetro | Descripción |
|---|---|
| customer | Proporcionado por nuestro equipo de integración |
| id | ID del grupo de productos a eliminar |
Respuesta
Esta API no genera un JSON de respuesta. Un estado 200 significa que el grupo fue eliminado con éxito.