API de Agrupadores de Promociones
La API de Agrupadores de Promociones permite gestionar agrupadores de promociones en la plataforma Nilo. Los agrupadores de promociones representan segmentaciones comerciales que determinan qué tiendas pueden ver promociones específicas.
Entendiendo los Agrupadores de Promociones
Los Agrupadores de Promociones en Nilo representan segmentos comerciales para dirigir promociones:
- Estructura del Agrupador
- Código interno único para identificación (igual al código de segmento en tu ERP)
- Nombre para visualización y organización
- Estado (habilitado/deshabilitado)
- Asociaciones con tiendas (qué tiendas pertenecen a este segmento)
Consideraciones Importantes
- Códigos Únicos: Cada agrupador requiere un código interno único (típicamente el código de segmento comercial de tu ERP)
- Asociaciones con Tiendas: Los agrupadores definen qué tiendas pueden ver las promociones asignadas a ellos
- Gestión de Estado: Los agrupadores pueden ser habilitados o deshabilitados sin eliminación
- Operaciones por Lotes: Soporte para asignación/remoción masiva de tiendas
Operaciones Individuales de Agrupador
Crear Agrupador de Promociones
POST
/grouper/promotionCrea un nuevo agrupador de promociones en la plataforma Nilo.
Parámetros del Cuerpo de la Solicitud
| Parámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
| name | string | Sí | Nombre del agrupador |
| internalCode | string | Sí | Identificador único del agrupador |
Ejemplo del Cuerpo de la Solicitud
{
"name": "Agrupador 1",
"internalCode": "1235"
}
Ejemplo de Uso
- Javascript
- Python
const headers = {
Authorization: "TU_TOKEN_DE_AUTORIZACION",
"x-api-key": "TU_API_KEY",
"Content-Type": "application/json",
};
const data = {
name: "Agrupador 1",
internalCode: "1235",
};
fetch("https://api.nilo.com/grouper/promotion", {
method: "POST",
headers: headers,
body: JSON.stringify(data),
})
.then((response) => response.json())
.then((result) => console.log(result))
.catch((error) => console.log("error", error));
import requests
url = "https://api.nilo.com/grouper/promotion"
headers = {
'Authorization': 'TU_TOKEN_DE_AUTORIZACION',
'x-api-key': 'TU_API_KEY',
'Content-Type': 'application/json'
}
data = {
"name": "Agrupador 1",
"internalCode": "1235"
}
response = requests.post(url, headers=headers, json=data)
print(response.text)
Actualizar Agrupador de Promociones
PUT
/grouper/{code}/promotionActualiza un agrupador de promociones existente.
Parámetros de Ruta
| Parámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
| code | string | Sí | Código del agrupador a actualizar |
Parámetros del Cuerpo de la Solicitud
| Parámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
| name | string | Sí | Nuevo nombre del agrupador |
Ejemplo del Cuerpo de la Solicitud
{
"name": "Agrupador 1"
}
Ejemplo de Uso
- Javascript
- Python
const headers = {
Authorization: "TU_TOKEN_DE_AUTORIZACION",
"x-api-key": "TU_API_KEY",
"Content-Type": "application/json",
};
const data = {
name: "Agrupador 1",
};
fetch("https://api.nilo.com/grouper/7234/promotion", {
method: "PUT",
headers: headers,
body: JSON.stringify(data),
})
.then((response) => response.json())
.then((result) => console.log(result))
.catch((error) => console.log("error", error));
import requests
url = "https://api.nilo.com/grouper/7234/promotion"
headers = {
'Authorization': 'TU_TOKEN_DE_AUTORIZACION',
'x-api-key': 'TU_API_KEY',
'Content-Type': 'application/json'
}
data = {
"name": "Agrupador 1"
}
response = requests.put(url, headers=headers, json=data)
print(response.text)
Cambiar Estado del Agrupador de Promociones
PUT
/grouper/{code}/status/promotionHabilita o deshabilita un agrupador de promociones específico.
Parámetros de Ruta
| Parámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
| code | string | Sí | Código del agrupador |
Parámetros del Cuerpo de la Solicitud
| Parámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
| enabled | boolean | Sí | Nuevo estado del agrupador |
Ejemplo del Cuerpo de la Solicitud
{
"enabled": true
}
Ejemplo de Uso
- Javascript
- Python
const headers = {
Authorization: "TU_TOKEN_DE_AUTORIZACION",
"x-api-key": "TU_API_KEY",
"Content-Type": "application/json",
};
const data = {
enabled: true,
};
fetch("https://api.nilo.com/grouper/7234/status/promotion", {
method: "PUT",
headers: headers,
body: JSON.stringify(data),
})
.then((response) => response.json())
.then((result) => console.log(result))
.catch((error) => console.log("error", error));
import requests
url = "https://api.nilo.com/grouper/7234/status/promotion"
headers = {
'Authorization': 'TU_TOKEN_DE_AUTORIZACION',
'x-api-key': 'TU_API_KEY',
'Content-Type': 'application/json'
}
data = {
"enabled": True
}
response = requests.put(url, headers=headers, json=data)
print(response.text)
Operaciones por Lotes
Actualización por Lotes de Agrupadores de Promociones
POST
/batch/grouper/promotionActualiza múltiples agrupadores de promociones en una sola operación.
Parámetros del Cuerpo de la Solicitud
| Parámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
| add | object | No | Tiendas para agregar a los agrupadores |
| remove | object | No | Tiendas para eliminar de los agrupadores |
Ejemplo del Cuerpo de la Solicitud
{
"add": {
"stores": [
{
"groupInternalCode": "2345",
"storeInternalCode": "124f"
}
]
},
"remove": {
"stores": [
{
"groupInternalCode": "2345",
"storeInternalCode": "125f"
}
]
}
}
Ejemplo de Uso
- Javascript
- Python
const headers = {
Authorization: "TU_TOKEN_DE_AUTORIZACION",
"x-api-key": "TU_API_KEY",
"Content-Type": "application/json",
};
const data = {
add: {
stores: [
{
groupInternalCode: "2345",
storeInternalCode: "124f",
},
],
},
remove: {
stores: [
{
groupInternalCode: "2345",
storeInternalCode: "125f",
},
],
},
};
fetch("https://api.nilo.com/batch/grouper/promotion", {
method: "POST",
headers: headers,
body: JSON.stringify(data),
})
.then((response) => response.json())
.then((result) => console.log(result))
.catch((error) => console.log("error", error));
import requests
url = "https://api.nilo.com/batch/grouper/promotion"
headers = {
'Authorization': 'TU_TOKEN_DE_AUTORIZACION',
'x-api-key': 'TU_API_KEY',
'Content-Type': 'application/json'
}
data = {
"add": {
"stores": [
{
"groupInternalCode": "2345",
"storeInternalCode": "124f"
}
]
},
"remove": {
"stores": [
{
"groupInternalCode": "2345",
"storeInternalCode": "125f"
}
]
}
}
response = requests.post(url, headers=headers, json=data)
print(response.text)
Seguridad
Autenticación
Todos los endpoints requieren dos tipos de autenticación:
- API Key en el encabezado:
x-api-key - Token de autorización en el encabezado:
Authorization
Permisos Requeridos
Para los endpoints de agrupadores de promociones, se requieren los siguientes permisos:
- Para operaciones de escritura:
supplier/grouper.write - Para operaciones por lotes:
supplier/grouper.bulkwrite