...
Elemento | Propiedad | Tipo de dato | Descripción | Requerido | Valor ante ausencia |
Ítem | unitprice | Numérico positivo | Precio unitario del artículo en cuestión. | Si | |
xprice | Numérico positivo | Precio extendido del artículo en cuestión. Es igual a la cantidad por el precio unitario. | Si | ||
qty | Entero positivo | Cantidad de artículos en la línea. | Si | ||
magnitude | Numérico positivo | Si el artículo es mensurable por otro unidad que no sea la cantidad, deberá ser expresad en esta propiedad. | No | 0 | |
code | Alfanumérico | Código propio del artículo. | No | "-" | |
Productcode | Alfanumérico | Código del Producto | No | ||
Barcode | Alfanumérico | Código de Barras del Producto | No | ||
brand | Alfanumérico | Marca del artículo. | No | "-" | |
supplier | Alfanumérico | Proveedor al que pertenece el artículo. | No | "-" | |
discountable | Alfanumérico | Si el artículo es puede recibir descuentos o no. | No | "-" | |
level1 | Alfanumérico | Nivel 1 de categorización del artículo. Anteriormente este nivel se conocía con el nombre de Departamento. | No | "-" | |
level2 | Alfanumérico | Nivel 2 de categorización del artículo. Anteriormente este nivel se conocía como la Familia del artículo. | No | "-" | |
level3 | Alfanumérico | Nivel 3 de categorización del artículo. Anteriormente este nivel se conocía como la Categoría del artículo. | No | "-" | |
level4 | Alfanumérico | Nivel 4 de categorización del artículo. Anteriormente este nivel se conocía como la subcategoría del artículo. | No | "-" | |
discontinuous | booleano | Determina si el producto es un producto discontinuo | No | false | |
lowTurnover | booleano | Determina si el producto es un producto de baja rotación | No | false | |
keyProduct | booleano | Determina si el producto es un producto estrella | No | false | |
applyCatalogRedeem | booleano | Determina si el producto participa en el Canje de Puntos por Catálogo | No | false | |
taxes | Numérico positivo | Valor de los impuestos discriminados respecto al precio unitario. (Ver atributo valueWithTaxes) | No | 0 | |
qty2 | Entero positivo | (Version > 7.EP2.1) Cantidad del producto a superar para otorgar el precio 2 (price2). Solo para Promociones de Nuevo Precio que indican usar monto externo. | No | 0 | |
price2 | Numérico positivo | (Version > 7.EP2.1) Precio una vez superada la cantidad 2 (qty2). Solo para Promociones de Nuevo Precio que indican usar monto externo. | No | 0 | |
qty3 | Entero positivo | (Version > 7.EP2.1) Cantidad del producto a superar para otorgar el precio 3 (price3). Solo para Promociones de Nuevo Precio que indican usar monto externo. | No | 0 | |
price3 | Numérico positivo | (Version > 7.EP2.1) Precio una vez superada la cantidad 3 (qty3). Solo para Promociones de Nuevo Precio que indican usar monto externo. | No | 0 | |
redeemOption | Alfanumérico | (Version > 7.EP2.1) Beneficio "Canje con opciones" - informara las opciones entre las que puede elegir el cliente para acceder a un determinado beneficio canjeando una determinada cantidad de puntos (del cliente y/o tarjeta de fidelidad) Mas detalle en Apéndice I - Canje con opciones | No | ||
Coupon | amount | Numérico positivo | Se utiliza para indicar el valor monetario del cupón. Si no tiene no se utiliza. | No | 0 |
type | Alfanumérico | Tipo de cupón (Aclaración: el tipo de cupón externo son cupones no administrados por PROMO. Este tipo de cupón es emitido y/o redimido por un sistema externo a PROMO). | No | "-" | |
qty | Entero positivo | Cantidad | No | 1 | |
id | Alfanumérico | Identificador del cupón. | No | "-" | |
LoyaltyCard | type | Alfanumérico | Tipo de tarjeta loyalty | No | "-" |
id | Alfanumérico | Idenficiador de la tarjeta loyalty | Si | "-" | |
amount | Numérico positivo | Saldo de la tarjeta loyalty | No | 0 | |
chargeAmount | Numérico positivo | Saldo a acreditar a una tarjeta loyalty | No | 0 | |
consumeAmount | Numérico positivo | Saldo a debitar a una tarjeta loyalty | No | 0 | |
status | Alfanumérico | ENABLED o DISABLED para habilitar o deshabilitar una tarjeta fidelidad (solo valido en status LoyatyActivation) | No | "ENABLED" | |
nextExpDate | Numérico | Fecha de la proxima expiracion de puntos en format YYYYmmdd. Solo es informado en tarjetas que posean vencimiento de carga definido. | No | "-" | |
nextExpValue | Numérico | Cantidad de puntos que venceran en el proximo vencimiento (nextExpDate) y se informa solo si la tarjeta posee vencimiento de carga definido. | No | "-" | |
reason | Alfanumérico | Código del motivo por el cual se está realizando el chargeAmount o consumeAmount pertinente. Este código corresponde a los valores de motivos definidos en la consola de Promo | No | "-" | |
cvv | Alfanumérico | Corresponde al codigo de seguridad o cvv asociado a la tarjeta. | No | "-" | |
validFrom | Alfanumérico | Fecha de inicio de vigencia . Formato "YYYY-MM-DD" (Año-Mes-Dia) .Ejemplo"2021-07-16" | No | "-" | |
validTo | Alfanumérico | Fecha de fin de vigencia . Formato "YYYY-MM-DD" (Año-Mes-Dia) .Ejemplo"2021-07-16" | No | "-" | |
Customer | type | Alfanumérico | Tipo de cliente. | No | "-" |
id | Alfanumérico | Identifica al cliente a través del Código. | No | "-" | |
remainingAmount | Numérico positivo | Propiedad que se puede utilizar para indicar el saldo a favor o en contra del cliente en cuestión. (compatibilidad con PROMO 4 y versiones anteriores) | No | 0 | |
points | Entero positivo | Saldo que posee el cliente. (compatibilidad con PROMO 4 y versiones anteriores) | No | 0 | |
Alfanumérico | Atributo incluido para la consulta de clientes | No | "" | ||
name | Alfanumérico | Atributo incluido para la consulta de clientes | No | "" | |
lastName | Alfanumérico | Atributo incluido para la consulta de clientes | No | "" | |
Identifier | Numérico positivo | Atributo incluido para la consulta de clientes | No | "" | |
cardNumber | Numérico positivo | Atributo incluido para la consulta de clientes | No | "" | |
creditCampaignCode | Alfanumérico | Código de la Campaña crediticia | No | "" | |
profileCode | Alfanumérico | Código del perfil del cliente | No | "" | |
limitedBenefits | Alfanumérico | Consiste en un listado de Limites asociados a Convenios. El mismo es del tipo: limitedBenefits:"limite1:valor1;limite2:valor2;limite3:valor3.....". Estos valores pueden ser informados desde el Punto de Venta o bien son obtenidos mediante una respuesta a LoyaltyValidation y reinjectados por parte del Puntos de venta como han sido recibidos. | No | "" | |
segment | Alfanumérico | Lista de Códigos de Segmento a los cuales pertenece el cliente, separados por ; | No | "" | |
amount | Numérico positivo | Propiedad que se puede utilizar para indicar el saldo correspondiente a un cliente | No | 0 | |
raffleData | Alfanumérico | Datos para imprimir en cupones informativos, orientado princialmente a sorteos. Ver Manual de Usuario para información sobre cupones Informativos. | No | "-" | |
"Payment Los atributos amount e itemamount son excluyentes y su uso depende de la versión de la promoción codificada que se | type | Alfanumérico | Tipo de medio de pago. | No | "-" |
id | Alfanumérico | Identificador del pago. | No | "-" | |
plan | Alfanumérico | Plan del medio de pago. | No | "-" | |
amount | Numérico positivo | Dinero que se utiliza con ese medio de pago. Dado que el monto del pago (PA) se calcula como PA = PIA (1 - %desc) o PA = PIA * (1+%recargo)* | No | 0 | |
bank | Alfanumérico | Banco relacionado con el medio de pago. | No | "-" | |
itemamount | Numérico positivo | Dinero que representa el monto de items que se desea pagar. | No | 0 | |
balance | Booleano | Indica si con este medio de pago se cancela el saldo de la transacción.Si el valor es true, entonces no es necesario enviar el amount o itemaount. | No | false | |
pointsType | Alfanumérico | Identifica el tipo de pago con puntos (ver manual de usuario Final Promo 7 - "Ignorar pago con Puntos" - Ver también beneficio PromotionPaidInPoints) | No | "" | |
installments | Numérico positivo | Indica la cantidad de cuotas asociadas al pago | No | "" | |
prefix | Alfanumérico | Indica el Prefijo asociado al pago | No | "" | |
Alfanumérico | Indica el Bolsllo asociado al pago | No | "" | ||
prefixGroup | Alfanumérico | Indica el grupo de Prefijos asociado al pago | No | "" | |
payCreditCampaign | Alfanumérico | Indica la Campaña Crediticia asociada al pago | No | "" | |
Event | type | Alfanumérico | Tipo de evento. | No | "-" |
id | Alfanumérico | Identificador del evento. | No | "-" | |
value | Alfanumérico | Valor que representa el evento. | No | "-" | |
Benefit | id | Alfanumérico | Identificador del beneficio externo. | Si | |
type | Alfanumérico | Tipo de beneficio externo. | Si | ||
amount | Numérico positivo | Se utiliza para indicar el monto a descontar o el porcentaje de descuento (de acuerdo al benefitType). | Si | ||
benefitType | Alfanumérico | Indica el tipo de beneficio a generar.
| No | "desc" | |
seqItem | Alfanumérico | Número de secuencia de los items a los cuales hay que aplicar el descuento. Si no viene el atributo o viene vacio se asume que es para todo el ticket. En caso de tener varios secuencias, las mismas deben venir separados por coma. Si algun alguna secuencia tiene mas de una cantidad, se debe concatenar con un =. Ejemplo: 1=2,2,3=3 (indica que el descuento se aplica a dos elementos de la secuencia uno, uno de la secuencia dos y tres la secuencia 3 | No |
...
Aviso |
---|
Importante: Si se agrega un elemento al contexto con un número de secuencia ya utilizado por un elemento del mismo tipo, el último enviado reemplazará al anterior |
Aviso | ||
---|---|---|
| ||
Si el ítem es mensurable, se debe colocar el valor de magnitude, no es necesario colocar qty. Pero en el caso de ponerlo, este valor debe ser qty= 1. El motor prevalecerá el valor de Magnitud al valor de cantidad. |
Ejemplo:
A continuación se presenta un ejemplo de un mensaje que agrega a la sesión del Motor de Promociones un ítem y un medio de pago (ambos con secuencia "1"), y elimina un cupón (de secuencia "2"):
...
1 | Valor de ack | Descripción | Acción recomendada | ||
2 | 9000 | El mensaje no posee un ticket asociado. | Reenviar el mensaje y si el error persiste re validar su formato. Verificar la secuencia que mensajes que se está enviando. | ||
3 | 9001 | Existe una transacción pendiente. Se ha recibido una nueva transacción para ser procesada pero existe una anterior que se encuentra pendiente. | Se debe enviar un mensaje con status=commit/rollback para finalizar la transacción anterior. | ||
4 | 9002 | No existe transacción pendiente. Se ha recibido un mensaje con status=commit o rollback pero no existía una transacción previa pendiente. | Revisar la mensajería que se está enviando al motor, mayormente en su secuencia lógica. | ||
5 | 9003 | Se ha solicitado la información de una transacción previa pero no se ha informado el identificador de la misma. | Verificar que la propiedad originalTransaction tenga un valor y sea válido. | ||
6 | 9004 | Se ha solicitado la información de una transacción previa pero la transacción no existe. | Verificar el identificador de la transacción original que se está informando. | ||
7 | 9005 | Indica que la Consola está en modo Offline | En algunos casos como loyaltyTransfer, si la consola está en modo Offline, esta operación no se puede realizar. Contactar al administrador de PROMO para que chequee el equipo donde se encuentra corriendo la consola de PROMO. | ||
8 | 9006 | Job de Finalización de Transacciones | Contactar al administrador de la aplicación y revisar las configuraciones de la consola para restablecer el servicio. | ||
9 | 9007 | No se indica "CompanyId" en el header del mensaje. | Verificar los datos enviados | ||
10 | 9101 | No se ha encontrado el Cupón | Verificar los datos solicitados | ||
11 | 9102 | Cupón Consumido | Verificar que el cupón no haya sido utilizado | ||
12 | 9103 | Cupón Inactivo | Verificar que el cupón solicitado se encuentre activo. | ||
13 | 9104 | No se ha encontrado el tipo de cupón | Verificar valor informado en el mensaje. | ||
14 | 9105 | El Cupón ha expirado. | La fecha de vencimiento del cupón se ha alcanzado, con lo cual verificar dicha situación. | ||
15 | 9106 | Se ha alcanzado el máximo número de usos | Verificar dicha situación | ||
16 | 9107 | El cupón es nominado y no se ha informado un cliente o bien el cliente informado no se corresponde con el cliente asociado al cupón | Verificar dicha situación | ||
17 | 9108 | El tipo de cupón no está activo | Verificar el tipo de cupón | ||
18 | 9109 | El monto enviado no corresponde al monto del cupón | Verificar monto del cupón | ||
19 | 9110 | Cupón no usado | El cupón ingresado a la transacción no ha participado de ninguna promoción. | ||
20 | 9111 | Cupón utilizado Parcialmente | Indica que el cupón no adminte uso parcial pero se está intentando usar parcialmente. En este caso si un commit es enviado confirmando la transaccion el cupón será consumido (Detección de Fraudes). | ||
21 | 9112 | El cupón es "Sin Expiración" | Cuando en la mensajería se pone un valor en el campo validTo. También si se quiere actualizar un cupón, se pone una valor en el campo validTo, pero el estado del cupón no es inactivo/activo/expirado. | ||
22 | 9113 | El rango validTo y validFrom de un cupón es anterior a la fecha inicio de vigencia | Cuando se quiere actualizar un cupon y la fecha del campo validTo y la fecha de fin de validez son anteriores a la fecha de inicio de vigencia. | ||
23 | 9114 | Barcode duplicado | Ya existe un cupón con el mismo barcode. | ||
2224 | 9201 | No se encontró el encabezado de la transacción. | Normalmente debido a un error interno, consultar con el administrador del sistema. | ||
2325 | 9500 | No se encontró la tarjeta loyalty | Verificar los datos solicitados | ||
2426 | 9501 | Tarjeta fidelidad inhabilitada | Verificar los datos solicitados. Para algunas acciones, solo se puede procesar Tarjetas fidelidad habilitadas | ||
2527 | 9502 | Tarjeta fidelidad cancelada | Verificar los datos solicitados. No se puede interactuar con tarjetas fidelidad canceladas | ||
2628 | 9503 | No se encontró el Tipo de tarjeta loyalty | Verificar los datos solicitados | ||
2729 | 9504 | Tipo de tarjeta no activa | Verificar los datos solicitados. No se puede interactuar con tipos de tarjeta inactivos | ||
2830 | 9505 | Tipo de tarjeta no recargable | Verificar los datos solicitados. Para opciones de Carga o Recarga, el tipo de tarjeta debe ser recargable | ||
2931 | 9506 | La tarjeta ya tiene un cliente asociado | Verificar que la tarjeta en la activación el customer enviado. | ||
3032 | 9507 | El estado enviado de tarjeta no existe. | Verificar que se haya enviado un estado de tarjeta, en la activación, valido (ENABLED, DISABLED) – En Mayúscula – | ||
3133 | 9508 | La tarjeta no aplica al beneficio | Verificar que el tipo de tarjeta sea recargable o que la tarjeta este habilitada. Otro error puede ser que el tipo de tarjeta con el que se armó el beneficio, este inactivo o no exista en la transacción. | ||
3234 | 9509 | La tarjeta requiere un cliente | Verificar si el tipo de tarjeta es requerido, en la transacción debe viajar al menos un cliente. | ||
3335 | 9510 | Tarjeta no autorizada | Existen varias situaciones en las que se puede obtener este codigo de error:
| ||
3436 | 9511 | Amount invalido | Cuando se intenta descontar un amount que es mayor al total del amount de la tarjeta, este mensaje aparecerá. Verificar que el amount sea menor al total. | ||
3537 | 9512 | Se requiere al menos dos tarjetas | Este mensaje se utiliza para las transferencias. Se requiere que haya dos tarjetas en el mensaje. La de origen en la Seq="1" y la de destino en la Seq="2" | ||
3638 | 9513 | La tarjeta no admite transferencia. | Verificar que la tarjeta origen admita Transferencia. Ya sea parcial o total. | ||
3739 | 9514 | La tarjeta destino esta activa | Verificar que la tarjeta destino esta inactiva para realizar una transferencia total. | ||
3840 | 9515 | Los tipos de tarjetas no son iguales | Verificar que los tipos de tarjeta sean iguales, es decir, el mismo. | ||
3941 | 9516 | El saldo ingresado es mayor al tope de saldo | Verificar que el valor ingresado para la carga de una tarjeta, no sea mayor al Tope de saldo del tipo de tarjeta. | ||
4042 | 9517 | El tipo de tarjeta no admite asignacion de clientes | Este error es especifico del servicio de proximo próximo número de tarjeta cuando el tipo de tarjeta no es nominado por archivo de alta masiva. | ||
4143 | 9518 | No se ha especificado el parámetro companyId | Este error es especifico del servicio de proximo próximo número cuando no se informa el identificador de la empresa que realiza el pedido. | ||
4244 | 9519 | CompanyId inválido | No se ha podido encontrar el companyId especificado. | ||
4345 | 9520 | Operación Inválida | La operación solcitada no corresponde a una operación válida | ||
4446 | 9603 | Cliente inexistente | 9521 | Rango inválido en elemento de fidelidad | Cuando se quiere crear un elemento de fidelidad, cuyo tipo está vencido; o cuando el tipo tiene rango de vigencia y se trata de crear un elemento con el rango invertido ( validFrom <validTo). |
47 | 9603 | Cliente inexistente | Verificar datos de cliente ingresado en la transacción | ||
4548 | 9610 | identificador de cliente vacío | Verificar datos de cliente ingresado en la transacción | ||
4649 | 9611 | Nombre de cliente vacío | Verificar datos de cliente ingresado en la transacción | ||
4750 | 9612 | Apellido de cliente vacío | Verificar datos de cliente ingresado en la transacción | ||
4851 | 9613 | ID de cliente Vacío | Verificar datos de cliente ingresado en la transacción | ||
4952 | 9614 | No se recibieron parámetros del cliente | Verificar datos de cliente ingresado en la transacción | ||
5053 | 9620 | Cliente ya existente | Verificar datos de cliente ingresado en la transacción | ||
5154 | 9629 | Cliente inactivo | Verificar datos de cliente ingresado en la transacción | ||
5255 | 9901 | Error de Cupón inesperado. | Todo error relacionado al procesamiento de cupones que no se encuentre tipificado en los códigos anteriores. Consultar al administrador del sistema. | ||
5356 | 9999 | Error inesperado | Todo error en el procesamiento de PROMO Central que no se encuentre tipificado en los casos anteriores. |
...
Los participantes de condición son un componente opcional que indica los elementos que influyeron en la condición (ver Manual de usuario) que provocaron que se otorgue el beneficio. Estos elementos estarán agrupados dentro de una etiqueta del tipo <conditionParticipants>. Los elementos participantes de condición estarán representados por la etiqueta que corresponda al tipo de elemento, agrupados como ya se describió dentro de <conditionParticipants>. Los elementos participantes poseerán los atributos informados al momento de agregarlos a la sesión.
Los participantes de condición son completamente opcionales, pudiendo no ser informados si así se configura en Módulo de administracion/Informacion de configuracion o si no existen participantes de condición. En ese caso la etiqueta <conditionParticipants> no formará parte de la promoción. Esta etiqueta no posee atributos.
Aviso | ||
---|---|---|
| ||
Si la variable : es true, los participantes de condición siempre se verán, independientemente que la promoción tenga o no tildado el check de "Reporta Participantes". |
Bloco de código | ||||||
---|---|---|---|---|---|---|
| ||||||
<message companyId="sts" store="MX" mapversion="3241" messageId="160" terminal="100" engine="2.6" ack="0"> <optional> <promo id="Promoción navideña" nro="1"> <conditionParticipants> <item code="0056" brand="PANASONIC" xprice="99.0" magnitude="0.0" family="TV" type="qty" dept="ELECTRONIC" qty="1.0" seq="2"/> <customer seq="2" id="000004" type="preferred" /> <coupon seq="1" id="0001" amount="" qty="1.0" type="A" /> </conditionParticipants> … beneficios … </promo> </optional> </message> |
...
Por ejemplo, el último número de tarjeta activo para el tipo "aaa10" es el 333000000000000007el 5000000000, al realizar la consulta solo con el tipo de tarjeta, Promo devolverá el id de tarjeta 333000000000000008 tarjeta 5000000001 que corresponde al próximo número próximo número de tarjeta inactivo y sin cliente disponible.
Bloco de código | ||||||
---|---|---|---|---|---|---|
| ||||||
<?xml version="1.0" encoding="UTF-8"?><message companyId="2" store="1" terminal="1" date-time="2023-0410-1705 1512:00:00" init-tck="true" messageId="1" void-trx="false" response="true" status="loyaltyvalidation" evaluate="true" suggest="true"> <loyaltycard-add seq="1" type="210" /> </message> |
Bloco de código | ||||||
---|---|---|---|---|---|---|
| ||||||
----- message ------ <?xml version="1.0" encoding="UTF-8"?><message ack="0" companyId="2" engine="7.1.15#24717#257" mapversion="163" messageId="1" store="1" terminal="1" transaction="2_1_1_2023041715000020231005120000"> <loyalty> <loyaltycards> <loyaltycard ack="0" amount="1000.00" amountChargeLimit="0.00" contract="" id="10100000095000000001" statusseq="Activa1" type="2" usePartial="true"10"/> </loyaltycards> <coupons/> <errors/> <customers/> <customers><redeemTable/> </loyalty> </message> |
Aviso | ||
---|---|---|
| ||
Esta funcionalidad aplica a tipos de tarjetas de fidelidad que sean nominadas por api (canal de ventas) y no nominadas( a partir de 7.1.18). |
Ej. para un tipo de Tarjeta de Fidelidad, no nominada. El último número de tarjeta activa para el tipo "11" (no nominada) es el 6001000000, al realizar la consulta solo con el tipo de tarjeta, Promo devolverá el id de tarjeta 6001000001 que corresponde al próximo número de tarjeta inactivo y sin cliente disponible.
Bloco de código | ||||||
---|---|---|---|---|---|---|
| ||||||
<?xml version="1.0" encoding="UTF-8"?><message companyId="2" store="1" terminal="1" date-time="2023-10-05 12:00:00" init-tck="true" messageId="1" void-trx="false" response="true" status="loyaltyvalidation" evaluate="true" suggest="true">
<loyaltycard-add seq="1" type="11" />
</message> |
Bloco de código | ||||||
---|---|---|---|---|---|---|
| ||||||
----- message ------
<?xml version="1.0" encoding="UTF-8"?><message ack="0" companyId="2" engine="7.1.17#257" mapversion="63" messageId="1" store="1" terminal="1" transaction="2_1_1_20231005120000">
<loyalty>
<loyaltycards>
<loyaltycard ack="0" id="6001000001" seq="1" type="11"/>
</loyaltycards>
<coupons/>
<errors/>
<customers/>
<redeemTable/>
</loyalty>
</message>
|
...