...
Informações | ||
---|---|---|
| ||
|
...
Propiedad | Tipo de dato | Descripción | Requerido | Valor ante ausencia |
companyId | Alfanumérico | Identifica la compañía que envia envía el mensaje | SI | |
store | Alfanumérico | Identifica el local que envía el mensaje. | Sí | |
channel | Alfanumérico | Identifica el canal donde asociado a la transacción. | No | "" |
terminal | Numérico | Identifica la terminal emisora | Sí | |
date-time | YYYY-MM-DD HH:MM:SS | Fecha y hora del mensaje. (date-time="2017-03-21 15:20:26") | Sí | |
messageId | Numérico positivo | Identifica cada uno de los mensajes enviados por la terminal, siendo este número utlizado por el Motor de Promociones como identificador cuando envíe una respuesta. | Sí | |
void-trx | Booleano | Indica si la transacción es una devolución. | No | "false" |
response | Booleano | Indica si se desea que el Motor dé una respuesta ante el mensaje enviado. | No | "false" |
init-tck | Booleano | Indica si con este mensaje se debe iniciar una nueva sesión. | No | "false" |
evaluate | Booleano | Le indica al motor que calcule las promociones utilizando los elementos ingresado hasta ese momento. | No | "false" |
status | Alfanumérico | Indica en que estado se encuentra el punto de venta
| No | "" |
msg-version | Alfanumérico | Indica la versión del mensaje en cuestión | No | "" |
map-version | Entero positivo | Indica al motor que mapa utilizar. Tendrá sentido sólo si el valor de "void-trx" es verdadero. | No | "" |
suggest | Booleano | Le indica al motor si debe sugerir promociones o no. Si suggest-seq y suggest-seq-type no están presentes se tomará todo el contexto para realizar la sugerencia. | No | "false" |
suggest-seq | Numérico | Indica el número de secuencia sobre el que el motor realizará la sugerencia en caso de que el atributo suggest="true". Este atributo será acompañado por el suggest-seq-type, que de no ser especificado, se asumirá suggest-seq-type="item" | No | "1" o null |
suggest-seq-type | Alfabético | Indica el tipo de línea sobre la que deberá hacerse la sugerencia en caso de que el atributo suggest="true". Este atributo será acompañado por el suggest-seq, que de no estar especificado, se asumirá sugget-seq="1". Los valores que puede tomar este atributo son: item, coupon, payment, event, customer. | No | "item" o null |
suggest-per-type | Booleano | Le indica al motor si deben sugerir promociones teniendo en cuenta el tipo de los conjuntos participantes de la promoción o no. Si suggest-filter-type no está presente se sugerirán todas las promociones que estén disponibles para sugerencia teniendo en cuenta el atributo suggest del mapa y las promociones. Si está presente y en verdadero, los atributos suggest, suggest-seq y suggest-seq-type serán ignorados. | No | "false" |
suggest-filter-type | Alfabético | Indica el tipo de conjunto participante de la promoción que deberá tenerse en cuenta para la sugerencia en caso de que el atributo suggest-per-type="true". Los valores que puede tomar este atributo son: item, coupon, payment, event, customer. Si no estuviera presente, se asume todos los tipos de conjuntos. | No | "null" |
suggest-extended | Booleano | Le indica al motor si debe mostrar la informacion de los beneficios de cada promocion sugerida. Si suggest es false, el valor de este campo no tiene relevancia. | No | "false" |
offline | Booleano | Le indica al motor que la transacción será tratada en modo offline, es decir ante una contingencia de comunicación con PROMO Central se almacenará para su posterior envío (ver nota debajo "Comportamiento de Promo en modo offline"). | No | "false" |
originalTransaction | Alfabético | Para el caso de un valor de status = requestTransaction, esta propiedad indicará la transacción que se requiere consultar | No | "" |
chosenOption | Entero positivio | En el caso de que el resultado de la evaluación haya resultado en una serie de opciones (varios bloques "optional") este atributo permite que el sistema externo informe al motor de Promo, cual de esas opciones fue la que finalmente se han aplicado u otorgado al cliente. El valor es basado en 0, es decir la primer opción es la número 0, la siguiente la número 1 y así sucesivamente. | No | 0 |
storeChain | Alfabético | Identificador de la "Cadena" a la que pertenece la tienda (Store) de la transacción. Puede ser utilizada en la condición de una promoción. | No | "" |
format | Alfabético | Identificador del Formato al cual pertenece la tienda (Store) de la transacción. Puede ser utilizada en la condición de una promoción. | No | "" |
zone | Alfabético | Identificador de la Zona a la cual pertenece la tienda (Store) de la transacción. Puede ser utilizada en la condición de una promoción. | No | "" |
subZone | Alfabético | Identificador de la SubZona a la cual pertenece la tienda (Store) de la transacción. Puede ser utilizada en la condición de una promoción. | No | "" |
tenderGroupCode | Alfabético | Cuando se utilice preciadores, si se envia el valor "cr" retornara el precio a crédito, en caso de otro valor o de no enviarlo retornara el precio de venta. | No | "" |
currencyCode | Alfabético | Código de la moneda en la cual se está realizando la transacción. Puede ser utilizada en la condición de una promoción, por ejemplo para condicionar la entrega de puntos a esa moneda. | No | "" |
limitBalances | Booleano | Cuando se envíe en 'true' se devolverá en la respuesta del motor al POS los saldos de limites de Tienda y General (retail) que tengan definido las promociones que hayan participado de la transacción en curso. Valor por defecto "false" (A partir de Promo 7.0.2) | No | "false" |
...
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 | 1 | |
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. Soporta múltiples valores. | No | ||
Barcode | Alfanumérico | Código de Barras del Producto. Soporta múltiples valores. | 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. Soporta múltiples valors. | No | "-" | |
level2 | Alfanumérico | Nivel 2 de categorización del artículo. Anteriormente este nivel se conocía como la Familia del artículo. Soporta múltiples valores. | 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. Soporta múltiples valores. | 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. Soporta múltiples valorses. | 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 elemento 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 elemento de fidelidad loyalty | No | "-" |
id | Alfanumérico | Idenficiador del elemento de fidelidad loyalty | Si | "-" | |
amount | Numérico positivo | Saldo del elemento de fidelidad loyalty | No | 0 | |
chargeAmount | Numérico positivo | Saldo a acreditar a un elemento de fidelidad loyalty | No | 0 | |
consumeAmount | Numérico positivo | Saldo a debitar a un elemento de fidelidad loyalty | No | 0 | |
status | Alfanumérico | ENABLED o DISABLED para habilitar o deshabilitar un elemento de fidelidad (solo valido en status LoyatyActivation) | No | "ENABLED" | |
nextExpDate | Numérico | Fecha de la próxima expiración de puntos en format YYYYmmdd. Solo es informado en elementos de fidelidad que posean vencimiento de carga definido. | No | "-" | |
nextExpValue | Numérico | Cantidad de puntos que vencerán en el próximo vencimiento (nextExpDate) y se informa solo si el elemento de fidelidad 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 código de seguridad o cvv asociado al elemento de fidelidad. | 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 reinyectados 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 ;. Se listarán sólo los segmentos externos. | 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 principalmente 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 ítems que se desea pagar. | No | 0 | |
balance | Booleano | Indica si con este medio de pago se cancela el saldo de la transacción. Sí 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 | ||
---|---|---|
| ||
Cuando el balance informado tenga saldo 0 o exista en la mismo mapa a evaluar promociones que apliquen al mismo balance y el saldo del mismo no alcanza para todos los beneficios solo se dará los beneficios que alcancen. |
Ejemplos de beneficios monetarios con balances:
Canje de cupón Calculado:
- Con Balance con saldo
Bloco de código | ||||||
---|---|---|---|---|---|---|
| ||||||
<message companyId="napse" store="napse" terminal="8" date-time="2022-07-01 11:16:23" init-tck="true" messageId="1" void-trx="false" response="true" status="sales" evaluate="true" offline="false" suggest="false" map-version="5469"> <item-add seq="1" code="1" qty="1" magnitud="0" xprice="1000" unitprice="1000"/> <coupon-add seq="1" id="12321321" type="cupcal" amount="1000" /> <customer-add seq="1" type="vip" id="1234" balances="1:2000"/> </message> |
...
Informações | ||
---|---|---|
| ||
{ |
Beneficio Externo:
- Con Balance con saldo
Bloco de código | ||||||
---|---|---|---|---|---|---|
| ||||||
<message companyId="napse" store="napse" terminal="8" date-time="2022-07-01 11:16:25" init-tck="true" messageId="3" void-trx="false" response="true" status="sales" evaluate="true" offline="false" suggest="false" map-version="5469"> <item-add seq="1" code="2" qty="1" magnitud="0" xprice="1000" unitprice="1000"/> <customer-add seq="1" balances="2:1000" type="vip" id="1234"/> <benefit-add seq="1" type="ben" amount="10" benefitType="porc"/> </message> |
...
Informações | ||
---|---|---|
| ||
{ |
Descuento Fijo:
- Con balance con saldo
Bloco de código | ||||||
---|---|---|---|---|---|---|
| ||||||
<message companyId="napse"store="napse" terminal="8" date-time="2022-07-01 11:16:30" init-tck="true" messageId="7" void-trx="false" response="true" status="sales" evaluate="true" offline="false" suggest="false" map-version="5469"> <item-add seq="1" code="5" qty="1" magnitud="0" xprice="10000" unitprice="10000"/> <customer-add seq="1" id="1" type="vip" balances="5:10000"/> <loyaltycard-add seq="1" id="123123123" type="tipo" amount="1000"/> </message> |
...
Informações | ||
---|---|---|
| ||
{ |
Descuento por Convenio:
- Con balance con saldo
Bloco de código | ||||||
---|---|---|---|---|---|---|
| ||||||
<message companyId="napse" store="napse" terminal="8" date-time="2022-07-01 11:16:32" init-tck="true" messageId="8" void-trx="false" response="true" status="sales" evaluate="true" offline="false" suggest="false" map-version="5469"> <item-add seq="1" code="6" qty="1" magnitud="0" xprice="10000" unitprice="10000"/> <customer-add seq="1" id="1" type="vip" balances="6:10000"/> <loyaltycard-add seq="1" id="123123123" type="tipo" amount="1000"/> </message> |
...
Informações | ||
---|---|---|
| ||
{ |
Descuento por Porcentaje:
- Con Balance con saldo
Bloco de código | ||||||
---|---|---|---|---|---|---|
| ||||||
<message companyId="napse" store="napse" terminal="8" date-time="2022-07-01 11:16:34" init-tck="true" messageId="10" void-trx="false" response="true" status="sales" evaluate="true" offline="false" suggest="false" map-version="5469"> <item-add seq="1" code="7" qty="1" magnitud="0" xprice="10000" unitprice="10000"/> <customer-add seq="1" id="1" type="vip" balances="7:10000"/> <loyaltycard-add seq="1" id="123123123" type="tipo" amount="1000"/> </message> |
...
Informações | ||
---|---|---|
| ||
{ |
Nuevo Precio
- Con Balance con saldo
Bloco de código | ||||||
---|---|---|---|---|---|---|
| ||||||
<message companyId="napse" store="napse" terminal="8" date-time="2022-07-01 11:16:34" init-tck="true" messageId="12" void-trx="false" response="true" status="sales" evaluate="true" offline="false" suggest="false" map-version="5469"> <item-add seq="1" code="8" qty="1" magnitud="0" xprice="10000" unitprice="10000"/> <customer-add seq="1" id="1" type="vip" balances="8:10000"/> <loyaltycard-add seq="1" id="123123123" type="tipo" amount="1000"/> </message> |
...
Informações | ||
---|---|---|
| ||
{ |
Canje de Puntos
- Con Balance con saldo
Bloco de código | ||||||
---|---|---|---|---|---|---|
| ||||||
<message companyId="napse" store="napse" terminal="8" date-time="2022-07-01 11:16:36" init-tck="true" messageId="14" void-trx="false" response="true" status="sales" evaluate="true" offline="false" suggest="false" map-version="5469"> <item-add seq="1" code="9" qty="1" magnitud="0" xprice="10000" unitprice="10000"/> <customer-add seq="1" id="1" type="vip" balances="9:10000"/> <loyaltycard-add seq="1" id="123123123" type="tipo" amount="1000"/> </message> |
...
Informações | ||
---|---|---|
| ||
{ |
Canje con Opciones
- Con Balance con saldo
Bloco de código | ||||||
---|---|---|---|---|---|---|
| ||||||
<message companyId="napse" store="napse" terminal="8" date-time="2022-07-01 11:16:32" init-tck="true" messageId="8" void-trx="false" response="true" status="sales" evaluate="true" offline="false" suggest="false" map-version="5469"> <item-add seq="1" code="3" qty="1" magnitud="0" xprice="10000" unitprice="10000" redeemOption="62bf51a78275812a6488efea_1"/> <customer-add seq="1" id="1" type="vip" balances="3:10000" points="40000" redeemPointsPriceFactor="2"/> <loyaltycard-add seq="1" id="123123123" type="tipo" amount="1000"/> </message> |
...
Aviso | ||
---|---|---|
| ||
El canje con opciones se aplicará el recorte en el descuento (value) pero no alterará el consumo de los puntos. |
Canje de puntos por catálogo
Primero se debe cargar el catálogo
...
Informações | ||
---|---|---|
| ||
{ |
Ejemplo de convivencia entre límites y balance
Aviso | ||
---|---|---|
| ||
Siempre aplicará el recorte por límite primero y luego aplicará el recorte por balance, es decir si el límite es menor al beneficio dado recortara el mismo, mas allá de que el balance sea suficiente, si el límite es superior al descuento pero el balance es menor a este último, se aplicará el recorte del balance. |
...
Beneficio | Propiedad | Tipo de dato | Requerido | Descripción |
FixedDiscount | unit | Alfanumérico | No | El valor de "unit" indicará si el descuento estará aplicado sobre todo el conjunto o sobre cada unidad de la propiedad seleccionada. Los valores posibles son:
|
discountAmount | Real positivo | Si | Descuento que se realizará sobre los elementos aplicados. El valor a descontar a cada artículo variará dependiendo de la unidad de aplicación. | |
prorationMethod | Alfanumérico | Si | Método que se utilizará para prorratear el beneficio entre los elementos aplicados, pudiendo ser:
| |
PercentageDiscount | unit | Alfanumérico | No | Indicará si debe aplicarse el porcentaje de descuento a cada unidad o al total. Los valores que puede tener son los indicados anteriormente. |
discountPercentage | Real positivo | Si | Porcentaje de descuento que se realizará sobre los elementos participantes. El valor a descontar a cada artículo variará dependiendo de la unidad de aplicación. | |
name | Alfanumérico | No | Nombre de la promoción que ha originado el beneficio. | |
prorationMethod | Alfanumérico | Si | Método que se utilizará para prorratear el beneficio entre los elementos aplicados. Los valores que a tomar son los mismos indicados anteriormente. | |
NewPrice | unit | Alfanumérico | No | Indicará si debe aplicarse el nuevo precio a cada unidad o al total. Los valores que puede tener son los indicados anteriormente. |
newPrice | Real positivo | Si | Descuento fijo que se realizará sobre los elementos participantes. El valor a descontar a cada artículo variará dependiendo de la unidad de aplicación. | |
prorationMethod | Alfanumérico | Si | Método que se utilizará para prorratear el beneficio entre los elementos aplicados. Los valores que puede tomar son los mismos indicados anteriormente. | |
TenderDiscountBenefit | tender | Alfanumérico | Si | Medio/s de pago que se pueden utilizar. Puede ser una lista separada por comas. |
limit | Real positivo | No | Indica el máximo que se podrá abonar con el medio de pago. Este tope sólo tendrá utilidad en el punto de venta sin afectar los calculos del Motor de Promociones. Si este valor es vacío significa que el monto es ilimitado. | |
planId | Alfanumérico | Si | Identificador del plan que se otorga. | |
Type | Alfanumérico | No | Tipo de medio de pago. | |
Bank | Alfanumérico | No | Banco asociado al medio de pago. | |
Percent | Real positivo | Si | Porcentaje de descuento o recargo que se realizará sobre los elementos participantes. | |
percenttype | Alfanumérico | No | Indica si el porcentaje es un descuento (valor=discount) o recargo (valor=surcharge). | |
tenderseq | Entero positivo | Si | Número identificador único del elemento medio de pago (payment) dentro de la transacción. | |
amount | Real positivo | Si | Dinero que se utiliza con ese medio de pago | |
itemamount | Real positivo | Si | Dinero que representa el monto de ítems que se desea pagar. | |
paymentAmount | Real positivo | Si | Indica el monto total sobre el cual se calculó el beneficio en cuestión. | |
installments | Real positivo | No | Indica la cantidad de cuotas asociadas al plan de pago | |
benefitedamount | Real positivo | Si | Descuento que se realizará sobre los elementos aplicados. | |
RedeemPointsBenefit | Type | Alfanumérico | Si | Indica el tipo de elemento de fidelidad a la que se aplicara el beneficio |
factor | Real positivo | Si | Indica el factor de conversión para el cálculo del descuento en base al monto informado en el amount | |
usedPoints | Real positivo | Si | Indica la cantidad de saldo (punto, dinero, etc.) que será utilizado para la aplicación de dicho beneficio | |
discountAmount | Real positivo | Si | Descuento que se realizará sobre los elementos aplicados. El valor a descontar a cada artículo variará dependiendo de la unidad de aplicación. | |
prorationMethod | Alfanumérico | Si | Método que se utilizará para prorratear el beneficio entre los elementos aplicados. Los valores que puede tomar son los mismos indicados anteriormente. | |
unit | Alfanumérico | Si | Indicará si debe aplicarse el nuevo precio a cada unidad o al total. Los valores que puede tener son los indicados anteriormente. | |
CalculatedCouponApplicationBenefit | discountAmount | Real positivo | Si | Descuento que se realizará sobre los elementos aplicados. El valor a descontar a cada artículo variará dependiendo de la unidad de aplicación. |
couponId | Alfanumérico | Si | Identificador del cupón a redimir. | |
usedCoupons | Alfanumérico | Si | Consiste en una cadena con valores separados por coma indicando cada uno de los codigos de cupon utilizados en la redención. Este dato es basado en los cupones utilizados para cubrir el monto de redención. Ejemplo usedCoupons=A645746566, BCD8383, P39393A9393 | |
PaymentPlanBenefit | tender | Alfanumérico | Si | Medio/s de pago que se pueden utilizar. Puede ser una lista separada por comas. Cuando en el request de una transacción no se especifica el Id y/o el nombre, y/o cuotas, y/o tipos, y/o plan, y/o prefijo y/o pocket del plan de pago; el mismo igual se aplica. |
limitAmount | Real positivo | No | Indica el máximo que se podrá abonar con el medio de pago. Este tope sólo tendrá utilidad en el punto de venta sin afectar los calculos del Motor de Promociones. Si este valor es vacío significa que el monto es ilimitado. | |
planid | Alfanumérico | Si | Identificador del plan que se otorga. | |
type | Alfanumérico | No | Tipo de medio de pago. | |
bank | Alfanumérico | Si | Banco asociado al medio de pago. | |
percent | Real positivo | No | Porcentaje de descuento o recargo que se realizará sobre los elementos participantes. El descuento o recargo será informado como un beneficio TenderDiscountBenefit | |
percenttype | Alfanumérico | No | Indica si el porcentaje es un descuento (valor=discount) o recargo (valor=surcharge). | |
installments | Real positivo | No | Indica la cantidad de cuotas asociadas al plan de pago | |
paymentAmount | Real positivo | Si | Indica el monto total sobre el cual se calculó el beneficio en cuestión. | |
CouponBenefit | couponId | Alfanumérico | Si | Identificador del cupón a otorgar. |
amount | Real positivo | Si | Indicara el monto asociado a un cupon cuyo monto fue calculado | |
qty | Entero positivo | Si | Cantidad de cupones a otorgar. | |
infoPos | Alfanumérico | No | En el caso de Cupones Informativos existe la posibilidad de enviar al Punto de Venta la opción seleccionada de las disponibles para configurar por el usuario. Ver manual de Usuario para Cupones Informativos. | |
GiftBenefit | giftid | Alfanumérico | Si | Identificador del regalo a entregar. En caso de que sea un producto en stock, puede representar el código del artículo a regalar. |
giftType | Alfanumérico | Si | Tipo de regalo a entregar. Puede ser vacío. | |
qty | Entero positivo | Si | Cantidad de regalos con el identificador indicado. | |
LoyaltyBenefit | type | Alfanumérico | Si | Tipo de valor (puntos, dinero, millas, etc.) de fidelidad que se están otorgando. |
amount | Entero positivo | Si | Cantidad de puntos, dinero, millas, etc. a otorgar del tipo especificado en el atributo anterior. | |
unit | Alfanumérico | Si | Indicará si debe aplicarse la cantidad de puntos, dinero, millas, etc. a cada unidad o al total. Los valores que puede tener son los indicados anteriormente. | |
totalpoints | Real positivo | Si | Indica la cantidad total de puntos, dinero, millas, etc. que otorga el beneficio luego de ser calculado. | |
FactorLoyaltyBenefit | type | Alfanumérico | Si | Tipo de puntos, dinero, millas, etc. de fidelidad que se están otorgando. |
factor | Real positivo | Si | Factor multiplicador a utilizar para el cálculo de los puntos, dinero, millas, etc. | |
PercentLoyaltyBenefit | type | Alfanumérico | Si | Tipo de puntos, dinero, millas, etc. de fidelidad que se están otorgando. |
percent | Real positivo | Si | Porcentaje de puntos, dinero, millas, etc., que se aplica sobre el xprice u originalXPrice para calcular la cantidad de puntos, dinero, millas, etc. que corresponden otorgar. | |
totalpoints | Real positivo | Si | Indica la cantidad total de puntos, dinero, millas, etc. que otorga el beneficio luego de ser calculado. | |
CalculatedCouponBenefit | couponId | Alfanumérico | Si | Identificador del cupón a otorgar. |
amount | Entero positivo | Si | Indicara el monto asociado a un cupon cuyo monto fue calculado | |
Percentage | Alfanumérico | Si | Indica el porcentaje en base al cual fue calculado el monto del cupon | |
qty | Entero positivo | Si | Cantidad de cupones a otorgar. | |
PromotionPaidInPoints | qty | Entero positivo | Si | Cantidad de items a beneficiar. |
points | Alfanumérico | Si | Cantidad de puntos a descontar del beneficio que ha entregado puntos en la transacción en curso (informado en el apply) Se informara cuando en el pago se envíe el atributo pointsType="" (ver manual de usuario final Promo 7 - Ignorar pago con puntos.) |
CatalogRedeemBenefit | discountAmount | Real positivo | Si | Descuento que se realizará sobre los elementos aplicados. El valor a descontar a cada artículo variará dependiendo de la unidad de aplicación. |
type | Alfanumérico | Si | Tipo de puntos, dinero, millas, etc. de fidelidad que se están otorgando. | |
unit | Alfanumérico | Si | Actualmente el beneficio se aplica sobre la cantidad o magnitud de cada producto en cuestión por lo cual no se espera funcionalidad en este atributo. | |
usedPoints | Real positivo | Si | Indica la cantidad de saldo (punto, dinero, etc.) que será utilizado para la aplicación de dicho beneficio |
...
Informações | ||
---|---|---|
| ||
{ |
Si todavía no tuvo segmento asignado, muestra un guion:
Bloco de código | ||||||
---|---|---|---|---|---|---|
| ||||||
<message ack="0" companyId="napse" engine="7.3.0RC1" mapversion="2" messageId="1" store="2" terminal="1" transaction="napse_2_1_20221228121400"> <loyalty> <loyaltycards> <loyaltycard ack="0" amount="2010.00" id="1111000000000" seq="1" type="tipo1"/> </loyaltycards> <coupons/> <errors/> <customers/> <redeemTable/> <goalsPrograms> <goalsProgram id="108" lastIncrement="20221228" lastPurchase="20221228" segment="-" value="2.00"/> <goalsProgram id="107" lastIncrement="20221228" lastPurchase="20221228" segment="-" value="4.00"/> </goalsPrograms> </loyalty> </message> |
...
En el ejemplo se han registrado cada uno de los ítem que se desean devolver, junto a los elementos de fidelidad asociados al cliente: Cupón y Elemento de Fidelidad.
Devolución Total
A partir de la versión 7.2.3, no requiere que el operador tenga la necesidad de escanear todos los productos para hacer la devolución total de la compra.
En este ejemplo se observa que sólo se ingresa el ID de la transacción original, sin necesidad de ingresar los ítems de la compra:
...
Informações | ||
---|---|---|
| ||
{ "cdata": respuesta de consola codificada en base64 |
Como hemos mencionado por cada uno de los cupones generados tendremos un elemento cupón, como se muestra en el siguiente ejemplo para 3 cupones:
Bloco de código | ||||||
---|---|---|---|---|---|---|
| ||||||
<message companyId="sts" ack="0" engine="2.6" mapversion="1" messageId="1" store="1" terminal="1" transaction="1_1_20170515152511"> <loyalty> <loyaltycards/> <coupons> <coupon ack="0" barcode="1030BC0037648" format="PRINTED" benefitNro="58d2a8f8ef5a63133c3ca31d" couponId="TC_IM" format="PRINTED" encoding="EAN13" promotionName="Emisión C-impreso" promotionNro="58d2acdaef5a63133c3ca346"><!\[CDATA\[..datos libres...\]\]> </coupon> <coupon ack="0" barcode="1030BC0034111" benefitNro="58d2a8f8ef5a63133c3ca31d" couponId="TC_IM" format="PRINTED" encoding="EAN13" promotionName="Emisión C-impreso" promotionNro="58d2acdaef5a63133c3ca346"> <!CDATA\[ … datos libres …. \]> </coupon> <coupon ack="0" amount="10.0" barcode="1030BC0030588" benefitNro="5900e18ea846390de08a7afd" couponId="1" encoding="EAN13" format="PRINTED" promotionName="emite impreso calculado" promotionNro="5900e173a846390de08a7af7"><!\[CDATA\[..datos libres...\]\]> </coupon> </coupons> <errors/> <redeemTable/> </loyalty> </message> |
...
Informações | |||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||||||||||||||||||||||||||||||||
Se incluye la funcionalidad de agregar de forma automática, en la validación del cliente, los segmentos a los que este pertenece, utilizando la funcionalidad loyaltyValidationex.
Cuando se reciba en Promo una consulta del tipo loyaltyValidationex y y se informe un cliente, se incluirán en el mensaje de respuesta los segmentos a los que este cliente pertenece junto con el resultado de la evaluacion evaluación de promociones con el mapa vigente.
|
...
Bloco de código | ||||||
---|---|---|---|---|---|---|
| ||||||
<message companyId="2" store="1" terminal="1" date-time="2023-08-15 16:00:00" init-tck="false" messageId="1" void-trx="false" response="true" status="salesales" evaluate="true" suggest="false"> <customer-add seq="1" id="1" email="[email protected]" identifier="12345" incompleteData="false" lastName="perez" limitedBenefits="" name="JUAN" segment="Seg1" seq="1"/> <item-add seq="1" unitprice="400" xprice="400" qty="1" code="Coca-Cola" discountable="true"/> </message> |
...
Informações | ||
---|---|---|
| ||
{ |
La respuesta aun contiene datos por defecto:
Bloco de código | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||
<message ack="0" companyId="napse" engine="6.4.6" mapversion="1" messageId="1" store="1" terminal="10" transaction="napse_1_10_20180809105150"> <loyalty> <loyaltycards/> <coupons/> <errors/> <customers> <customer code="10090504" email="-" identifier="10090504" lastName="rodrigues" limitedBenefits="" name="pepe" segment="" seq="1"/> </customers> </loyalty></message> |
...
Âncora | ||||
---|---|---|---|---|
|
OperatoOriaOperatoria | GiftCard | Monedero | Tarj de Puntos | Gift - Único Uso |
Alta de tarjeta | Por ArchivoINACTIVAS | Por Archivo/ManualInactivas o Activas | Por ArchivoINACTIVAS | Por ArchivoINACTIVAS |
Consulta de Tarjetas | Se informara en tag Errors (por estar inactiva)el Amount - Type | Se informara en tag Errors, si esta inactiva o en tag LoyaltyCard si esta activaType - Amount | Se informara en tag Errors (por estar inactiva)Amount –Customer-Type | Se informara en tag Errors (por estar inactiva)Amount - Type |
Activación de Tarjeta | Deberá activarse por medio del mensaje "Loyaltyactivation" o "finish" Valida CVV | Podrá activarse por el mensaje "Loyaltyactivation", "finish" o cuando se realiza su primera recarga | Podrá activarse por el mensaje "Loyaltyactivation", "finish" o cuando se realiza su primera recarga Si se envía Cliente lo validará | Podrá activarse por el mensaje "Loyaltyactivation", "finish" o cuando se realiza su primera recarga. Valida CVV |
Transferencia | Admite solo transferencia de saldo totales - Una vez transferido el saldo total de la tarjeta, ésta se cancela. Valida CVV | Admite transferencias parciales sin alterar el estado del elemento. | No admite transferencia de ningún tipo. | No admite transferencia de ningún tipo. |
Imputación de Saldo | No admite recarga de saldo. | Admite recargas hasta un valor máximo. | Admite recargas sin tope. Si se envía cliente se validara. | Admite recargas sin tope. Valida CVV. |
Consumo de Saldo | Admite consumir el saldo en más de una transacción sin alterar el estado de la tarjeta. Valida CVV | Admite consumir el saldo en más de una transacción sin alterar el estado de la tarjeta | Admite consumir el saldo en más de una transacción sin alterar el estado de la tarjeta Si se envía cliente se validara | Solo permite un único consumo de saldo ya sea total o parcial, luego de ese único consumo el elemento de fidelidad se INACTIVA. Valida CVV |
...
Aviso | ||
---|---|---|
| ||
De no cumplirse con las 6 validaciones anteriores, el calculo del beneficio será 0 para dicho ítem (value="0") |
...
Alta del Elemento de Fidelidad asociada al cliente identificado en la transacción (al momento de aplicar el beneficio de acumulación)
Para la asignación y carga de un elemento de fidelidad que acumule puntos de fidelidad deberá considerarse la siguiente secuencia entre el pos y Promo:
- Pre-Requisitos:
Para que el alta de clientes pueda efectuarse al momento de procesarse una transacción, deberá de habilitarse en el archivo de configuraciones de la Consola de Promo (“promoplus.properties”) el siguiente atributo:
Nota |
---|
# Habilita el alta de clientes on the fly promo.allowNonExistingCustomers = true |
Una vez actualizado, deberá de reiniciarse el Wildfly para que los cambios sean tomados correctamente.
- Alta de Cliente
Los clientes serán creados utilizando el estado "loyaltyValidation" en el caso de enviarse los datos mínimos y al mismo tiempo Promo detecte que el cliente no existe. Los datos mínimos mencionados son (marcados en Negrita):
<customer-add seq="1"
id="9"
identifier="47001517"
type="test"
name="bruno"
lastName="Lopez"
identifierType="dni"
email="mimail@
test.com"
/>
Bloco de código | ||||||
---|---|---|---|---|---|---|
| ||||||
<?xml version="1.0" encoding="UTF-8"?>
<message companyId="2" store="3" terminal="1" date-time="2023-09-20 17:00:00" init-tck="true" messageId="1" void-trx="false" response="true" status="loyaltyValidation" evaluate="true" suggest="true">
<customer-add seq="1" id="9" identifier="47001517" type="test" name="bruno" lastName="Lopez" identifierType="dni" email="[email protected]" />
</message> |
En la respuesta al loyaltyValidation no se informarán tarjetas ya que el cliente esta recién ingresado en la consola de Promo.
Bloco de código | ||||||
---|---|---|---|---|---|---|
| ||||||
---- message ------
<?xml version="1.0" encoding="UTF-8"?><message ack="0" companyId="2" engine="7.3.0RC3#71" mapversion="86" messageId="1" store="3" terminal="1" transaction="2_3_1_20230920170000">
<loyalty>
<loyaltycards/>
<coupons/>
<errors/>
<customers>
<customer birthday="false" code="9" email="[email protected]" identifier="47001517" incompleteData="false" lastName="lopez" limitedBenefits="" name="bruno" segment="" seq="1" type="test"/>
</customers>
<redeemTable/>
<goalsPrograms/>
</loyalty>
</message> |
- Ingreso de ítem
Bloco de código | ||||||
---|---|---|---|---|---|---|
| ||||||
<?xml version="1.0" encoding="UTF-8"?>
<message companyId="2" store="3" terminal="1" date-time="2023-09-20 17:05:00" init-tck="false" messageId="1" void-trx="false" response="true" status="sales" evaluate="true" suggest="true">
<customer-add seq="1" id="9" identifier="47001517" type="test" name="bruno" lastName="Lopez" identifierType="cpf" email="[email protected]" />
<item-add seq="2" qty="1" code="111" level1="1121" magnitude="0" brand="Kumho" xprice="612" unitprice="612" />
</message> |
Se devuelve la promoción que aplica puntos al tipo de elemento de fidelidad; en este caso "Promo P1"
Bloco de código | ||||||
---|---|---|---|---|---|---|
| ||||||
----- message ------
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<message ack="0" companyId="2" engine="7.3.0RC3#71" mapversion="86" messageId="1" store="3" terminal="1">
<optional>
<promo id="Promo P1" nro="64ddfc0a92889f36286c9d88">
<benefit TLOGMessage="Promo P1" account="" applicationMethod="resume" baseAmount="612.00" benefitType="PercentageDiscount" discountPercentage="100.00" displayMessage="Promo P1" name="64ddfc0a92889f36286c9d88" nro="64ddfc2d92889f36286c9d8f" order="1" printerMessage="Promo P1" prorationMethod="PROPORTIONAL" unit="qty">
<apply>
<item magnitude="0.000" qty="1.000" seq="2" value="612.00" valueWithTaxes="612.00" xprice="612.00"/>
</apply>
</benefit>
</promo>
</optional>
</message>
|
Dado que el cliente no tiene elementos asociados, se deberá dar de alta en Promo un nro. de elemento del mismo tipo que recibe el beneficio informado, y asociarla al cliente.
Nota |
---|
Los beneficios del tipo Loyalty que informen en su tipo (“type”) la palabra “external”, corresponderán a tipos de elementos no gestionadas por promo, las cuales no participan en las promociones que otorguen puntos de fidelidad. |
Actualización: Se utilizara, para el alta de elementos durante la transacción el status “loyaltyActivation”, enviando el tag <loyaltyCard-add/> el parámetro status=”CREATE”, el campo Type del mismo tag deberá corresponderse con el tipo de elemento que es beneficiado durante la transacción, y en el campo id deberá indicarse el numero de elemento que se desea asignar.
Este número no necesariamente debe corresponderse con el largo y prefijo indicado en el tipo de elemento, podrá indicarse un código libre y se controlará que para dicho tipo de elemento no existan dos números de elementos iguales.
Bloco de código | ||||||
---|---|---|---|---|---|---|
| ||||||
<?xml version="1.0" encoding="UTF-8"?>
<message companyId="2" store="3" terminal="1" date-time="2023-09-20 17:00:00" init-tck="false" messageId="1" void-trx="false" response="true" status="loyaltyActivation" evaluate="true" suggest="true">
<loyaltycard-add id="1100000020" seq="1" type="5" status="CREATE"/>
</message> |
Bloco de código | ||||||
---|---|---|---|---|---|---|
| ||||||
----- message ------
<?xml version="1.0" encoding="UTF-8"?><message ack="0" companyId="2" engine="7.3.0RC3#71" mapversion="86" messageId="1" store="3" terminal="1" transaction="2_3_1_20230920170000">
<loyalty>
<loyaltycards>
<loyaltycard ack="0" amount="0.00" id="1100000020" seq="1" type="5"/>
</loyaltycards>
<coupons/>
<errors/>
<customers/>
<redeemTable/>
<goalsPrograms/>
</loyalty>
</message> |
Esta operación no requiere FINISH ni COMMIT.
Para confirmar la correcta asociación, deberá realizarse un LoyaltyValidation del cliente y aquí deberá de modificarse el TimeStamp de la transacción a fin de que los puntos otorgados luego por el beneficio sean asignados correctamente al elemento recientemente creado.
Bloco de código | ||||||
---|---|---|---|---|---|---|
| ||||||
<?xml version="1.0" encoding="UTF-8"?>
<message companyId="2" store="3" terminal="1" date-time="2023-09-20 18:30:00" init-tck="true" messageId="2" void-trx="false" response="true" status="loyaltyValidation" evaluate="true" suggest="true">
<customer-add seq="1" id="9" email="[email protected]" identifier="47001517" incompleteData="false" lastName="lopez" limitedBenefits="" name="bruno" segment="" type="test"/>
<loyaltycard-add seq="1" id="1100000020" type="5" amount="2000000.00" />
</message> |
Bloco de código | ||||||
---|---|---|---|---|---|---|
| ||||||
----- message ------
<?xml version="1.0" encoding="UTF-8"?><message ack="0" companyId="2" engine="7.3.0RC3#71" mapversion="86" messageId="1" store="3" terminal="1" transaction="2_3_1_20230920170000">
<loyalty>
<loyaltycards>
<loyaltycard ack="0" amount="0.00" amountChargeLimit="0.00" contract="" customer="9" id="1100000020" seq="1" type="5" usePartial="true"/>
</loyaltycards>
<coupons/>
<errors/>
<customers>
<customer birthday="false" code="9" email="[email protected]" identifier="47001517" incompleteData="false" lastName="lopez" limitedBenefits="" name="bruno" segment="" seq="1" type="test">
<loyaltycard ack="0" amount="0.00" amountChargeLimit="0.00" contract="" id="1100000020" status="Activa" type="5" usePartial="true"/>
</customer>
</customers>
<redeemTable/>
<goalsPrograms/>
</loyalty>
</message> |
Una vez que el cliente ya tiene el elemento asociado y activo, podrá ingresarse ésta en la transacción para así asignarle los puntos otorgados por el beneficio.
Bloco de código | ||||||
---|---|---|---|---|---|---|
| ||||||
<?xml version="1.0" encoding="UTF-8"?>
<message companyId="napse" store="1" terminal="1" date-time="2020-11-03 11:25:33" init-tck="false" messageId="2" void-trx="false" response="true" status="sales" evaluate="true" map-version="2" tckpath="Y" suggest="true">
<item-add seq="2" qty="1" code="111" level1="1121" magnitude="0" brand="Kumho" xprice="612" unitprice="612" />
<loyaltycard-add seq="5" id="2220000000000003" type="111" amount="2000000.00" />
</message> |
Bloco de código | ||||||
---|---|---|---|---|---|---|
| ||||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<message ack="0" companyId="napse" engine="7.0.0-EP2#52" mapversion="2" messageId="2" store="1" terminal="1">
<optional>
<promo code="3" id="otorga Stickers A-3" nro="5f9f589216f79af90c99c6a0">
<benefit TLOGMessage="otorga Stickers A" account="" applicationMethod="resume" baseAmount="612.00" benefitType="LoyaltyBenefit" displayMessage="otorga Stickers A" name="5f9f589216f79af90c99c6a0" nro="5f9c446f16f79af90c99c6a6" order="1" printerMessage="otorga Stickers A" totalpoints="100.00" type="111" unit="" value="100.00">
<apply>
<item magnitude="0.000" points="100.00" qty="1.000" seq="2" value="0.00" valueWithTaxes="0.00" xprice="612.00"/>
</apply>
</benefit>
</promo>
</optional>
</message> |