Saltar al contenido principal

API de Recomendaciones

La API de Recomendaciones permite gestionar recomendaciones de productos en la plataforma Nilo. Las recomendaciones son listas curadas de productos que pueden mostrarse a tiendas específicas durante un período definido.

Entendiendo las Recomendaciones​

Las Recomendaciones en Nilo ayudan a destacar productos específicos para tiendas seleccionadas:

  • Estructura de Recomendación
    • Código interno único para identificación
    • Título y descripción para visualización
    • Peso para ordenamiento (valores menores aparecen primero)
    • Período de validez (fechas de inicio y fin)
    • Lista de productos a recomendar
    • Segmentación de tiendas mediante operaciones batch

Consideraciones Importantes​

  1. Códigos Únicos: Cada recomendación requiere un código interno único
  2. Ordenamiento por Peso: Valores de peso menores posicionan la recomendación primero en la lista
  3. Validez por Fechas: Las recomendaciones solo están activas dentro de las fechas de inicio y fin
  4. Asignación de Tiendas: Usa operaciones batch para asignar recomendaciones a tiendas específicas

Operaciones Individuales​

Obtener Detalles de Recomendación​

GET/recommendations/{code}

Obtiene información detallada sobre una recomendación específica.

Parámetros de Ruta​

ParámetroTipoRequeridoDescripción
codestringSíCódigo interno de la recomendación

Ejemplo de Respuesta​

{
"title": "Recomendaciones de Verano",
"internalCode": "REC-001",
"description": "Los mejores productos para el verano",
"weight": 1,
"startDate": "2025-01-01",
"endDate": "2025-12-31",
"enabled": true,
"products": [
{
"internalCode": "PROD-001"
},
{
"internalCode": "PROD-002"
}
]
}

Ejemplo de Uso​

const headers = {
Authorization: "YOUR_AUTH_TOKEN",
"x-api-key": "YOUR_API_KEY",
};

fetch(
"https://tm0cs5kjs6.execute-api.us-east-1.amazonaws.com/dev/recommendations/REC-001",
{
method: "GET",
headers: headers,
}
)
.then((response) => response.json())
.then((result) => console.log(result))
.catch((error) => console.log("error", error));

Listar Todas las Recomendaciones​

GET/recommendations

Obtiene una lista de todas las recomendaciones con soporte de paginación y filtrado.

Parámetros de Query​

ParámetroTipoRequeridoDescripción
takenumberNoNúmero de items por página (default: 50, max: 50)
pagestringNoNúmero de página (default: 1)
cursorstringNoCursor para paginación. Primera llamada debe pasar 0, llamadas siguientes usan el cursor de la respuesta anterior
enabledbooleanNoFiltrar por estado habilitado

Crear o Actualizar Recomendación​

PUT/recommendations

Crea una nueva recomendación o actualiza una existente. Si el internalCode existe, actualiza; de lo contrario, crea una nueva recomendación.

Parámetros del Body​

ParámetroTipoRequeridoDescripción
titlestringSíTítulo de la recomendación
internalCodestringSíIdentificador único para la recomendación
descriptionstringSíDescripción de la recomendación
startDatestringSíFecha de inicio (YYYY-MM-DD)
endDatestringSíFecha de fin (YYYY-MM-DD)
weightintegerNoPeso para ordenamiento (valores menores aparecen primero)
productsarrayNoArray de productos a incluir en la recomendación

Ejemplo del Body​

{
"title": "Recomendaciones de Verano",
"internalCode": "REC-001",
"description": "Los mejores productos para el verano",
"weight": 1,
"startDate": "2025-06-01",
"endDate": "2025-08-31",
"products": [
{
"internalCode": "PROD-001"
},
{
"internalCode": "PROD-002"
}
]
}

Cambiar Estado de Recomendación​

PUT/recommendations/{code}/status

Habilita o deshabilita una recomendación específica.

Parámetros de Ruta​

ParámetroTipoRequeridoDescripción
codestringSíCódigo interno de la recomendación

Parámetros del Body​

ParámetroTipoRequeridoDescripción
enabledbooleanSíNuevo estado de la recomendación

Ejemplo del Body​

{
"enabled": true
}

Operaciones Batch​

Actualización Batch de Asignación de Tiendas​

POST/batch/recommendations

Agrega o elimina tiendas de recomendaciones en batch. Define qué tiendas verán recomendaciones específicas.

Parámetros del Body​

ParámetroTipoRequeridoDescripción
addobjectNoTiendas a agregar a recomendaciones
removeobjectNoTiendas a eliminar de recomendaciones

Items del array stores:

CampoTipoRequeridoDescripción
recommendationInternalCodestringSíCódigo interno de la recomendación
storeInternalCodestringSíCódigo interno de la tienda

Ejemplo del Body​

{
"add": {
"stores": [
{
"recommendationInternalCode": "REC-001",
"storeInternalCode": "STORE-001"
},
{
"recommendationInternalCode": "REC-001",
"storeInternalCode": "STORE-002"
}
]
},
"remove": {
"stores": [
{
"recommendationInternalCode": "REC-002",
"storeInternalCode": "STORE-003"
}
]
}
}

Códigos de Respuesta​

CódigoDescripción
202Solicitud aceptada, procesamiento iniciado
400Solicitud incorrecta

Seguridad​

Autenticación​

Todos los endpoints requieren dos tipos de autenticación:

  • API Key en header: x-api-key
  • Token de autorización en header: Authorization

Permisos Requeridos​

  • Para operaciones de lectura: supplier/recommendation.read
  • Para operaciones de escritura: supplier/recommendation.write
  • Para operaciones batch: supplier/recommendation.bulkwrite
Tana

Tana

Preguntame lo que quieras sobre la API de Nilo: endpoints, autenticación, guías de integración o ejemplos de código.

Buena práctica: validá contra la documentación oficial para tener los detalles más actualizados.