Soluciones
En el uso de Ares pueden presentarse algunos inconvenientes o necesidades comunes.
A continuación se documentan los principales y cómo solucionarlos.
1. Agregar un atributo nuevo en Ares
Síntoma:
Necesitan agregar un atributo nuevo en Ares, por ejemplo 'energy_required' de tipo boolean.
Posibles causas:
El equipo comercial quiere mostrar a los usuarios de web si el articulo se conecta a la corriente electrica.
Solución:
Vamos a registrar el nuevo atributo en Ares para que sea capaz de recibirlo en las comunicaciones de RabbitMQ y asi guardarlo en MongoDB.
- En el listado de AWS Lambdas busca la que se llama ms-ares-consumers-stg-pimconsumer-v6 y/ó ms-ares-consumers-prod-pimconsumer-v6
- Dentro de la lambda hay informacion general en la seccion de 'Function overview' y debajo hay opciones formato de tabs (Code, Test, Monitor, Configuration, Alises, Versions), asi que elige 'Code'. Para más información
- Una vez en el editor de código (el cual es parecido a VS Code) ubica el archivo
src/pim-consumer/template.js** - Vamos a agregar un nuevo atributo en el objeto de
module.exports, podria ser debajo del ultimo atributo registrado que es 'sale_price'. Queremos que en la base de datos de Ares de almacene con el nombre de is_energy_required en formato boolean pero en el JSON que recibiremos en RMQ el campo se llamara energy_required y podriamos recibir un numero (1,0) o formato boolean.
Entonces se veria algo así...
module.exports = {
..., // otros atributos
sale_price: {
"path": "price",
"transform": (price) => price ? +(Number(price).toFixed(2)) : undefined,
"api_import": false,
},
is_energy_required: {
"path": "energy_required",
"transform": (attributeValueFromJson) => {
if (undefined == attributeValueFromJson) {
return undefined; // esto evita actualizar cuando no se envia el atributo en el JSON
}
let attributeValueToDatabase = false;
if (1 == attributeValueFromJson || true == attributeValueFromJson) {
attributeValueToDatabase = true;
}
return attributeValueToDatabase;
},
"api_import": false,
},
};
- Una vez modificado el template atributos vamos a guardar los cambios usando el botón Deploy.

Desde ahora ya podras enviar el nuevo campo en las comunicaciones de rabbitmq y Ares lo guardara. Sigue el proceso Publicacion de productos enviando un JSON como el siguiente.
{ "sku":"12204_2", "energy_required":1 }
2. Agregar un atributo en la publicación de Typesense
Síntoma:
Necesitan agregar un atributo nuevo en Typesense, por ejemplo 'energy' de tipo string.
Posibles causas:
El equipo comercial quiere mostrar a los usuarios de web si el articulo se conecta a la corriente electrica.
Solución:
Vamos a registrar el nuevo atributo en el publicador de Ares-Typesense.
- En el listado de AWS Lambdas busca la que se llama ms-ares-reports-stg-typesensePublish y/ó ms-ares-reports-prod-typesensePublish
- Dentro de la lambda hay informacion general en la seccion de 'Function overview' y debajo hay opciones formato de tabs (Code, Test, Monitor, Configuration, Alises, Versions), asi que elige 'Code'. Para más información
- Una vez en el editor de código (el cual es parecido a VS Code) ubica el archivo
src/publisher/channels/TYPESENSE/template.js** - Vamos a agregar un nuevo atributo en el objeto de
exports.map, podria ser debajo del ultimo atributo registrado que es 'has_cashback'. En Ares el campo se llama is_energy_required de tipo boolean pero queremos que en typesense llegue con el nombre de energy con valor 'si' ó 'no'.
Entonces se veria algo así...
exports.map = {
template: {
..., // otros atributos
has_cashback: {
path: "has_cashback",
transform: function (val, transformedObject, originalObject) {
return val === true
&& originalObject.product_type !== 'gaiagrouped';
}
},
energy: {
path: "is_energy_required",
transform: function (val, transformedObject, originalObject) {
return val === true ? 'si' : 'no'
}
},
}
};
- Una vez modificado el template atributos vamos a guardar los cambios usando el botón Deploy.

Desde ahora las nuevas publicaciones en typesense incluiran el campo 'energy'.