Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

...

CONSIDERACIONES PARTICULARES A PROMO

Promo ha incorporado de forma estândar estándar el uso de las colas mencionadas.

En la siguiente imagen se puede observar un diagrama de arquitectura simple:

Image Modified

Del diagrama se desprende que Promo como productor de la información que él administra (ej: Tarjetas de fidelidad), mientras que al mismo tiempo es un consumidor de la información provista por sistemas externos (ej. Catálogo de marcas).

...

claveTipo de DatoDescripción
rabbitMQ.enabledBooleanoPropiedad que indica si está habilitado RabbitMQ (true o false).  Si se fija en TRUE Promo se conectará al servidor RabbitMQ y quedará en escucha del mismo.  Si se fija en false se desconectará del mismo.
rabbitMQ.endpointNameAlfanuméricoNombre de la cola de RabbitMQ de la cual se consumiran consumirán los mensajes
rabbitMQ.uriAlfanumérico

URI de conexión completa RabbitMQ (amqp://<user>:<password>@<host>:<port>/<vhost>)

vhost: Opcional en caso de estar definido dentro del server RabbitMQ

Este parámetro contiene y excluye a los otros marcados con *

rabbitMQ.username*AlfanuméricoUsuario para acceder al RabbitMQ
rabbitMQ.password*AlfanuméricoPassword para acceder al RabbitMQ
rabbitMQ.host*AlfanuméricoDirección (host) del RabbitMQ server
rabbitMQ.virtualHost*AlfanuméricoVirtual Host al RabbitMQ
rabbitMQ.port*NuméricoPuerto del server RabbitMQ

...

En la figura siguiente se observa la pantalla de Configuración:


Configuración por URIImage Modified




Aviso
titleConsumer por empresa

Promo Soporta solo un consumidor por compañía

...

Propiedad

Tipo de dato

Descripción

companyId

Alfanumérico

Código de la companíacompañía

catalog

Alfanumérico

Código que identifica el catalogo (VER TIPOS VALIDOS)

params

JSON 

Opcional. Datos auxiliares a definir los cuales se usaran para utilizar en la importación del catalogo

items

Array de Json

Son los items a importar del catalogo

operation

Alfabético

Operación a realizar sobre el registro (I ,U, D)

"I"  indica que el registro debe insertarse

"U" indica que el registro debe actualizarse

"D" indica que el registro debe eliminarse

"IU" indica que el registro será insertado en caso de no existir o bien actualizado si existe

<fieldName>
Alfanuméricocampos específicos del catalogo a importar




...

catalogDescripción
catalogCardCatálogo de Tarjetas de fidelidad
catalogBrandCatálogo de Marcas
catalogCategoryCatálogo de Categorías
catalogChannelCatálogo de Canales
catalogCreditCampaignCodeCatálogo de Campañas Crediticias
catalogCustomerCatálogo de Clientes
catalogCustomerTypeCatálogo de tipos de Clientes
catalogIdTypeCatalogo de tipo de identificador
catalogDepartmentCatálogo de Departamentos
catalogEventTransactionCatálogo de eventos
catalogEventTransactionTypeCatálogo de tipo de eventos
catalogExtendWarrantyCatálogo de Extensión de Garantías
catalogFamilyCatálogo de Familia de productos
catalogFormatCatálogo de Formatos
catalogInfoFinancialCatálogo de información financiera
catalogItemCatálogo de productos
catalogItemStockCatálogo de Stock de productos
catalogPaymentBankCatálogo de pagos Bancarios
catalogPaymentCodeCatálogo de código de pagos Bancarios
catalogPaymentPrefixCatálogo de Prefijos Bancarios
catalogPaymentTypeCatálogo de Tipo de pagos
catalogProfileCodeCatálogo de Código de Perfil del cliente
catalogStoreChainCatálogo de cadena de valor
catalogStoreCatálogo de tiendas
catalogSubCategoryCatálogo de subcategoría
catalogSubZoneCatálogo de subzona
catalogSupplierCatálogo de proovedorproveedor
catalogZoneCatálogo de zonas
catalog<CodeFieldDynamic>Catálogo dinámico el nombre del mismo se forma con el String catalog concatenado con el código del campo dinámico generado en la consola




...

Ejemplos de carga de

...

Catálogos


En el siguiente ejemplo se observa la inserción de 2 registros de tarjetas.

...

Informações

En versiones superiores a 6.5.14 y 7.0 se incopora incorpora la posibilidad de realizar actualizaciones sobre el campo cvv.  En este caso dicho campo queda registrado como una actualización en el detalle de movimientos de tarjetas de fidelidad.

...

La definición de los denominados cmapos campos dinámicos permite asociar los mismos con un catálogo.  Este catálogo puede ser también administrado via vía colas.


Ejemplo de carga de catalogo DINÁMICO.

...

  1. Ir al menú Administración en la opción Atributo de elementos, allí se creara el campo dinámico el cual tendrá que definirse como tipo AUTOCOMPLETADO POR CATALOGO. 

    Paso 1 creación de campo dinámicoImage Modified


  2. Una vez creado el nuevo atributo, desde el Productor de RabbitMQ, ya se podrá enviar los datos asociados al nuevo catalogo

    Producer RabbitMQImage Modified


  3. Para poder acceder al resultado de la importación se tendrá que ver ir  en el menú SOPORTE la opción Monitor de Importación.


Image Modified


Image Modified


 4. En Administración, Importación de catálogos se podrán ver los datos ingresados.


Image Modified


5. En la promoción se podrá seleccionar los datos ingresados.


Image Modified


Image Modified


Image Modified


6 .Para que el motor pueda evaluar la promoción se deberá distribuir el atributo creado en el paso (Dicha distribución precisa que se reinicie el motor).


Image Modified

7. Distribuir el mapa con la promoción para poder evaluar la misma.

...

  • rabbitMQ.producer.enabled: (true o false)

  • rabbitMQ.producer.uri:amqp://<user>:<password>@<host>:<port>/<vhost(Opcional)>

  • rabbitMQ.promotion.endpointName:<nombreCola para posteo de promociones>

  • rabbitMQ.limitstatus.endpointName:<nombreCola para posteo del status de limites>

  • rabbitMQ.cardhistory.endpointName: <Nombre de la cola de RabbitMQ para el posteo de datos de tipo CardHistory>


Segunda o configuración por parámetros:

  • rabbitMQ.producer.enabled:(true o false) 

  • rabbitMQ.producer.username:<user>

  • rabbitMQ.producer.password:<pass>

  • rabbitMQ.producer.host:<host>

  • rabbitMQ.producer.virtualHost:<vhost>

  • rabbitMQ.producer.port:<port>

  • rabbitMQ.promotion.endpointName:<nombreCola para posteo de promociones>

  • rabbitMQ.limitstatus.endpointName:<nombreCola para posteo del status de limites>

  • rabbitMQ.cardhistory.endpointName: <nombreCola para posteo del CardHistory>


RabbitMQ – Historial de Tarjetas

La cola de mensaje disponibles para el envío del historial de tarjetas:

  • rabbitMQ.cardhistory.endpointName  >>  Nombre de la cola de RabbitMQ para el posteo de datos del historial de tarjetas.


Ejemplo del Json que se envía:

Bloco de código
themeEmacs
{
 "_id": "603d02251082e8369081744b",
 "amount": "0",
 "amountPrev": "0",
 "card": {
 "code": "9900000000000000",
 "status": "ENABLED",
 "type": "987"
 },
 "cardAction": "ACTIVATION",
 "companyId": "exito",
 "createdAt": "2021-03-01T15:03:01Z",
 "customerCode": null,
 "date": "2021-03-01T15:03:01Z",
 "reason": null,
 "reasonName": null,
 "storeCode": null,
 "terminalCode": null
}


Detalle de los campos:

Campo

Descripción

id

Id del registro de limite en Mongo.

amount

Monto actual asociado a la tarjeta de fidelidad

amountPrev

Monto previo de la tarjerta de fidelidad

card {}

Datos asociados a la tarjeta informada

codeNumero de la tarjeta de fidelidad
statusEstado de la tarjeta de fidelidad
typeTipo de la tarjeta de fidelidad


cardAction

Accion asociada al movimiento de tarjeta de fidelidad.

companyId

Compañía desde la que se envia el movimiento de la tarjeta de fidelidad.

createdAt

Fecha de creacion de la tarjeta de fidelidad.

customerCode

Cliente asociado a la tarjeta de fidelidad.

date

Fecha del movimiento que se informa de la tarjeta de fidelidad.

reason

Código de la razón asociada al movimiento que se informa de la tarjeta de fidelidad.

reasonName

Nombre de la razón asociada al movimiento que se informa de la tarjeta de fidelidad.

storeCode

Código de la tienda asociada al movimiento que se informa de la tarjeta de fidelidad.

terminalCode

Código de la terminal asociada al movimiento que se informa de la tarjeta de fidelidad.




RabbitMQ – Estado de los limites

La cola de mensaje disponibles para el envío de estado de los limites es:

  • rabbitMQ.limitstatus.endpointName  >> Nombre de la cola de RabbitMQ para el posteo de datos de tipo LimitStatus (informara movimientos de todos los tipos de limites)

 

Ejemplo del Json que se envía:

Bloco de código
themeEmacs
{
                "_id": "603a36021082e83690816fe0",
                "promotionId": "603a2fa81082e83690816f81",
                "benefitId": "603a2fce1082e83690816f88",
                "promotionCode": null,
                "promotionName": "limite general",
                "limitId": "603a2fca1082e83690816f87",
                "scope": "RETAILER",
                "period": "UNDEFINED",
                "maxValue": 10.0,
                "customerId": "-",
                "storeId": "-",
                "numberDays": 0,
                "nextReset": "2021-02-27T03:00:00Z",
                "lastReset": "2021-02-27T03:00:00Z",
                "companyId": "exito",
                "limitTypeCode": "benefiedProductCount",
                "description": null,
                "lastUpdate": "2021-02-27T12:07:30Z",
                "active": true,
                "currentValue": 1.0
}


Detalle de los campos:

Campo

Descripción

id

Id del registro de limite en Mongo.

promotionId

Id de la promoción en Mongo.

benefitId

Id del beneficio en Mongo.

promotionCode

Código de la promoción.

promotionName

Nombre de la promoción.

limitId

Id del límite en Mongo.

scope

Tipo de limite a contabilizar (CUSTOMER, STORE, RETAILER).

period

Periodo a contabilizar.

maxValue

Valor máximo al que podrá llegar el limite definido en la promoción.

customerId

Cliente asociado al límite.

storeId

Id de la tienda donde se realizó el movimiento del límite.

numberDays

Cantidad de días definidos para el periodo a contabilizar.

nextReset

Próximo reseteo del límite.

lastReset

Ultimo reseteo realizado al límite.

limitTypeCode

Código del tipo de limite (benefitAmount, benefiedProductCount, benefitApplicationCount).

description

descripción ingresada en el límite.

lastUpdate

Ultima actualización del limite (desde consola a promociones con limite definido).

active

Indica si el limite está a activo (true) o consumido (false).

currentValue

Valor actual del límite.



...


Mensajes: Cache de Promociones

...

  1. Banner con detalle de la incidencia. 
    - Para conocer el detalle de la incidencia, presione Ver mas detalle.

    Image Modified

  2. Lista de procesos de exportación fallidos.
    - En el campo Descripción: se podrá visualizar la causa del error
    - Una vez corregido error que ocasiona el fallo en el posteo de los mensajes al server RabbitMQ, deberá presionar el botón Reprocesar

    Image Modified


  3. Si el procesamiento de los fallos relacionados al posteo de datos vía RabbitMQ es exitoso, la grilla deberá quedar sin registros por Reprocesar.

Image Modified