...
Propiedad | Tipo de dato | Descripción | Requerido |
seq | Entero positivo | Número identificador único del elemento dentro de la transacción. | Sí |
Aviso | ||
---|---|---|
| ||
La cantidad límite de secuencias es seq= "999" por transacción. |
Este será el único atributo que poseerán los comandos del tipo void, siendo este el atributo que indica el elemento que se desea eliminar.
Por otro lado, el comando add poseerá una serie de atributos que definirán las distintas propiedades del elemento que se está agregando (además del número de secuencia antes mencionado). Dependiendo del elemento en cuestión, los atributos serán los siguientes:
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 | "-" | |
Productcodeproductcode | Alfanumérico | Código del Producto. A partir de Promo 7.2.6 soporta múltiples valores. | No | ||
Barcodebarcode | Alfanumérico | Código de Barras del Producto. A partir de Promo 7.2.6 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. A partir de Promo 7.2.6 soporta múltiples valores. | No | "-" | |
level2 | Alfanumérico | Nivel 2 de categorización del artículo. Anteriormente este nivel se conocía como la Familia del artículo. A partir de Promo 7.2.6 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. A partir de Promo 7.2.6 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. A partir de Promo 7.2.6 soporta múltiples valores. | 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 | (Versión > 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 | (Versión > 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 | (Versión > 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 | (Versión > 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 | (Versión > 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. | 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 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 ;. Se listarán tanto los segmentos internos como los 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. 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 Bolsillo 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 ítems a los cuales hay que aplicar el descuento. Si no viene el atributo o viene vacío se asume que es para todo el ticket. En caso de tener varios secuencias, las mismas deben venir separados por coma. Si algún 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 |
Informações | ||
---|---|---|
| ||
A partir de Promo 7.2.6 los siguientes atributos del elemento ítem soportan campos con múltiples valores: level1, level 2, level3, level 4, productCode y barcode. Se podrá enviar por ej: <item-add ........... productCode="A,B,C,D" /> Y se le aplicarán las promociones que tengan como condición: productCode = "A" productCode = "B" productCode = "C" productCode = "D" productCode alguno de: "A, D" etc. |
Nota |
---|
Nota: El número de secuencia debe ser único para cada tipo de elemento, pudiendo existir, por ejemplo, un cliente y un ítem la misma secuencia; pero nunca dos elementos con el mismo número de secuencia. |
...
Informações | ||
---|---|---|
| ||
{ | ||
Nota |
Para seleccionar una opción, en el finish se debe agregar chosenOption y el orden de la que haya seleccionado el cliente:
Bloco de código | ||||||
---|---|---|---|---|---|---|
| ||||||
<message companyId="2" store="3" terminal="1" date-time="2023-07-26 15:00:00" init-tck="false" messageId="1" void-trx="false" response="true" status="finish" evaluate="true" suggest="false" chosenOption="1">
<customer-add seq="1" id="1"/>
<item-add seq="1" unitprice="12000" xprice="12000" qty="1" code="Coca-Cola" discountable="true"/>
</message> |
Nota |
---|
Siempre va a haber por lo menos un optional (sin importar que función de convivencia se esté utilizando). Solo la función de convivencia OPTION tiene un tag. Las otras funciones de convivencia modifican el resultado sin tener un tag, lo maneja internamente el motor. En el caso que se utilice la función de convivencia "OPTION" pueden venir varios optional para que puedan ser informados en pantalla, y la persona elija en el POS qué opción va a preferir. El POS deberá usar el campo "chosenOption" en el mensaje Finish, para informarle a Promo qué opción eligió la persona en la pantalla del POS. Para elegir la primer promoción deberá ingresar en chosenOption="0", para la segunda promoción chosenOption="1", y así sucesivamente. |
Âncora | ||||
---|---|---|---|---|
|
...
Âncora | ||||
---|---|---|---|---|
|
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 el archivo de definición de promociones (mapa) 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> |
...
A partir de 7.2.3 al realizar un loyaltyValidation de un cliente, además de mostrar los datos del cliente, si este posee tarjetas o cupones, mostrará la misma información que al realizar un loyaltyValidation de tarjetas o cupones por separado".
...
language | xml |
---|---|
theme | Emacs |
title | Request XML |
...
A partir de 7.2.6 si el código de cliente enviado en el loyaltyValidation está en mayúsculas y en la base de datos también, el response mostrará los datos del cliente. Si el código de cliente enviado en el loyaltyValidation está en minúsculas y en la base de datos también, el response mostrará los datos del cliente. Si el código de cliente enviado en el loyaltyValidation está en minúsculas y en la base de datos está en mayúsculas, se responderá con el mensaje de error 9603: cliente inexistente. Si el código de cliente enviado en el loyaltyValidation está en mayúsculas y en la base de datos está en minúsculas, se responderá con el mensaje de error 9603: cliente inexistente.
Bloco de código | ||||||
---|---|---|---|---|---|---|
| ||||||
<message companyId="napse" store="3" terminal="1" date-time="2023-08-02 12:30:00" init-tck="falsetrue" messageId="1" void-trx="false" response="true" status="loyaltyvalidation" evaluate="true" suggest="false"> <loyaltycard-add seq="1" id="1000000000" /> <loyaltycard-add seq="2" id="1000000009" /> <loyaltycard-add seq="3" id="6010000009" /> <customer-add seq="1" id="1"/> </message> |
Informações | ||
---|---|---|
| ||
{ |
...
Bloco de código | ||||||
---|---|---|---|---|---|---|
| ||||||
----- message ------ <?xml version="1.0" encoding="UTF-8"?><message ack="0" companyId="2" engine="7.2.4#2646#282" mapversion="374" messageId="1" store="13" terminal="1" transaction="2_13_1_2023031800000020230802123000"> <loyalty> <loyaltycards/> <coupons/> <errors/> <customers> <customer code="1" email="[email protected]" identifier="12345" lastName="perezPerez" limitedBenefits="" name="juanJUAN" segment="" seq="1" type="empleadoEMPLEADO"> <coupon ack="0" amount="0.00" barcode="10100100164711050030016471" couponId="16"/> <coupon<loyaltycard ack="0" amount="1.00" amountChargeLimit="0.00" barcodecontract="" id="1000000000" status="Activa" type="10200100164701" couponIdusePartial="2true"/> <loyaltycard ack="0" amount="0.00" amountChargeLimit="0.00" contract="" id="1000000009" status="Activa" type="1" usePartial="true"/> <loyaltycard ack="0" amount="200000.00" amountChargeLimit="0.00" contract="1" id="6010000009" status="Activa" type="4" usePartial="true"/> </customer> </customers> <redeemTable/> </loyalty> </message> |
Informações | ||
---|---|---|
| ||
{ }] { "ack": "0", |
A partir de Promo 7.2.6 en la respuesta del mensaje loyaltyvalidation se envía el campo: paymentCode. Dicho campo utiliza el catálgo catalogPaymetCode.catalog.
...
Si se especifica un cvv el mismo será registrado y asociado al elemento de fidelidad que se ha creado.En la siguiente figura se muestra un tipo de ejemplo denominado tn1
Procedemos a la creación sin carga del primer elemento de fidelidad:
Bloco de código | ||||||
---|---|---|---|---|---|---|
| ||||||
<message companyId="2napse" store="2" terminal="10" date-time="2023-0407-1011 1711:0030:00" init-tck="true" messageId="1" void-trx="false" response="true" status="loyaltyActivation" evaluate="false" offline="false"> <loyaltycard-add seq="1" id="40100000101600000003" type="37" status="CREATE" /> </message> |
...
Informações | ||
---|---|---|
| ||
{ |
...
Bloco de código | ||||||
---|---|---|---|---|---|---|
| ||||||
----- message ------ <?xml version="1.0" encoding="UTF-8"?><message ack="0" companyId="2napse" engine="7.2.4#2646#282" mapversion="071" messageId="1" store="2" terminal="10" transaction="2_2_10_2023041017000020230711113000"> <loyalty> <loyaltycards> <loyaltycard ack="0" amount="0.00" id="40100000101600000003" seq="1" type="37"/> </loyaltycards> <coupons/> <errors/> <customers/> <redeemTable/> </loyalty> </message> |
Informações | ||
---|---|---|
| ||
{ |
...
Bloco de código | ||||||
---|---|---|---|---|---|---|
| ||||||
<message companyId="2napse" store="2" terminal="10" date-time="2023-0407-1011 1711:0030:00" init-tck="true" messageId="1" void-trx="false" response="true" status="loyaltyActivation" evaluate="false" offline="false"> <loyaltycard-add seq="1" id="40100000121600000004" type="37" status="CREATE" chargeAmount="105.001000" /> </message> |
Informações | ||
---|---|---|
| ||
{ |
Respuesta
Bloco de código | ||||||
---|---|---|---|---|---|---|
| ||||||
---- message ------ <?xml version="1.0" encoding="UTF-8"?><message ack="0" companyId="2napse" engine="7.2.4#2646#282" mapversion="071" messageId="1" store="2" terminal="10" transaction="2_2_10_2023041017000020230711113000"> <loyalty> <loyaltycards> <loyaltycard ack="0" amount="1051000.00" id="40100000121600000004" seq="1" type="37"/> </loyaltycards> <coupons/> <errors/> <customers/> <redeemTable/> </loyalty> </message> |
Informações | ||
---|---|---|
| ||
{ |
...
Si observamos el detalle de alguna de ellas:
Cambio y reseteo de CVV de un elemento de fidelidad (CVVCHANGE y CVVRESET)
...
Expandir | ||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||||||||||||||||||||||
Para el cambio de CVV se deberá enviar en el status="loyaltyActivation" el tag <loyaltycard/> el status "CVVCHANGE" Ejemplo de envio de cambio de CVV
Cuando la operación termine de manera satisfactoria se obtendrá la siguiente respuesta:
En caso de error en el proceso de cambio de CVV se devolverá la siguiente respuesta:
En este caso se informa que el elemento no existe en la Base de Promol. Al realizarse un cambio de CVV, podrá observarse el movimiento en el detalle del elemento de la siguiente forma: |
Expandir | ||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||||||||||||||||||||||
Para el reset de CVV se deberá enviar en el status="loyaltyActivation" el tag <loyaltycard/> el status "CVVRESET" Ejemplo de envío de reset de CVV:
Cuando la operación termine de manera satisfactoria se obtendrá la siguiente respuesta:
En caso de error en el proceso de reset de CVV se devolverá la siguiente respuesta:
En este caso se informa que el estado enviado del elemento no existe. (error de sintaxis en el request) Al realizarse un reset de CVV, podrá observarse el movimiento en el detalle del elemento de la siguiente forma: Al realizar un reset del CVV de un elemento de Fidelidad, en la Base de datos se mostrara el campo cvv de la tarjeta de la siguiente fomar: |
Âncora | ||||
---|---|---|---|---|
|
Realiza la transferencia de saldo de un elemento de fidelidad a otra del mismo tipo. Una transferencia de saldos puede ser total, cuando se transfiere todo el monto, o parcial, si sólo se realiza el intercambio de una parte del valor. En el caso de una transferencia total, hay que considerar en dar de baja el primer elemento de fidelidad, del cual se obtiene el monto.
Para poder realizar una transferencia de saldos, tanto el elemento de origen (la que da saldo) como la de destino (la que recibe saldo) deben ser del mismo tipo.
En la seq=1 enviada por el POS se informara la tarjeta origen, es decir, a quien se le descontaran los puntos, dinero, millas, etc.
En la seq=2 enviada por el POS se informara la tarjeta destino, es decir, la que recibirá los puntos, dinero, millas, etc.
(Ver también Manual de Usuario, "Conceptos de Tarjetas Elementos de Fidelidad" para más detalle sobe los distintos tipos de transferencia posible,)
...
Bloco de código | ||||||
---|---|---|---|---|---|---|
| ||||||
<message companyId="stsnapse" store="13" terminal="1" date-time="20172023-07-12-29 1618:4900:1600" init-tck="true" messageId="1" void-trx="false" response="true" status="loyaltyTransfer" msg-versionevaluate="9true" map-versionsuggest="1false"> <loyaltycard-add seq="1" typeid="21600000004" idtype="22200000000007" /> <loyaltycard-add seq="2" id="1600000002" type="7" chargeAmount="500"/> </message> |
Bloco de código | ||||||
---|---|---|---|---|---|---|
| ||||||
----- message ------ <?xml version="1.0" encoding="UTF-8"?><message ack="0" companyId="napse" engine="7.2.6#282" mapversion="71" messageId="1" store="3" terminal="1" transaction="2_3_1_20230712180000"> <loyalty> <loyaltycards> <loyaltycard ack="0" amount="500.00" id="1600000004" seq="1" type="7"/> <loyaltycard ack="0" amount="2000.00" id="22200000000011600000002" chargeAmountseq="42" type="7"/> </message> </loyaltycards> <coupons/> <errors/> <customers/> <redeemTable/> </loyalty> </message> |
Informações | ||
---|---|---|
| ||
{ |
(Ver también Engine Response - LoyaltyTransfer)
Se requiere COMMIT o ROLLBACK para confirmar o reversar la transacción.
Transferencia parcial
Se puede realizar una transferencia parcial desde un elemento de fidelidad a otro.
Aviso | ||
---|---|---|
| ||
Para permitir una transferencia parcial, el tipo de elemento de fidelidad debe tener seleccionada esta opción. |
- Por servicio rest
Al operar con postman, como el mensaje correspondiente será en formato xml, la cabecera content type tendrá el valor application/xml en lugar de application/json.
Tener en cuenta que la url cambia para hacer esta operación, ya que se interactúa contra el motor. El valor que aparece a la derecha de evaluate, en la dirección, es autocompletado por postman. El cuerpo del mensaje (body) tendrá que estar vacío. Los mensajes se enviarán como un parámetro en la dirección. Este parámetro es request. Separar el valor con dos puntos. Presionar, para facilitar el ingreso de datos, en bulk edit (a la derecha de la solicitud) que luego cambia a key-value edit. El valor del parámetro request es el xml a enviar al motor, el cual no deberá tener ningún espacio entre etiquetas.
Bloco de código | ||||||
---|---|---|---|---|---|---|
| ||||||
http://localhost:8172/engine/evaluate?request=<?xml version="1.0" encoding="UTF-8"?><message store="3" terminal="1" date-time="2023-07-12 18:00:00" init-tck="true" messageId="1" void-trx="false" response="true" status="loyaltyTransfer" map-version="71" companyId="napse"><loyaltycard-add seq="1" type="7" id="1600000004"/><loyaltycard-add seq="2" type="7" id="1600000002" chargeAmount="500" /></message> |
En la respuesta aparece como quedarían estas tarjetas de confirmarse la operación. Se confirma la operación con el mismo mensaje, pero con el atributo status en "commit" en lugar de "loyaltyTransfer" o "rollback" para cancelar.
Bloco de código | ||||||
---|---|---|---|---|---|---|
| ||||||
<?xml version="1.0" encoding="UTF-8"?>
<message ack="0" companyId="napse" engine="7.2.6#282" mapversion="71" messageId="1" store="3" terminal="1" transaction="2_3_1_20230712180000">
<loyalty>
<loyaltycards>
<loyaltycard ack="0" amount="500.00" id="1600000004" seq="1" type="7"/>
<loyaltycard ack="0" amount="2000.00" id="1600000002" seq="2" type="7"/>
</loyaltycards>
<coupons/>
<errors/>
<customers/>
<redeemTable/>
</loyalty>
</message> |
Al confirmar la operación....
Bloco de código | ||||||
---|---|---|---|---|---|---|
| ||||||
<?xml version="1.0" encoding="UTF-8"?>
<message ack="0" companyId="napse" engine="7.2.6#282" mapversion="71" messageId="1" store="3" terminal="1" transaction="2_3_1_20230712180000"/> |
se verá en la consola reflejado el cambio.
2. Por servicio tcp:
Se realiza la consulta:
Bloco de código | ||||||
---|---|---|---|---|---|---|
| ||||||
<message companyId="napse" store="3" terminal="1" date-time="2023-07-12 17:00:00" init-tck="true" messageId="1" void-trx="false" response="true" status="loyaltyTransfer" evaluate="true" suggest="false">
<loyaltycard-add seq="1" id="1100000007" type="5" />
<loyaltycard-add seq="2" id="1100000006" type="5" chargeAmount="500"/>
</message> |
Bloco de código | ||||||
---|---|---|---|---|---|---|
| ||||||
----- message ------
<?xml version="1.0" encoding="UTF-8"?><message ack="0" companyId="napse" engine="7.3.0RC3#71" mapversion="66" messageId="1" store="3" terminal="1" transaction="2_3_1_20230712170000">
<loyalty>
<loyaltycards>
<loyaltycard ack="0" amount="500.00" id="1100000007" seq="1" type="5"/>
<loyaltycard ack="0" amount="1500.00" id="1100000006" seq="2" type="5"/>
</loyaltycards>
<coupons/>
<errors/>
<customers/>
<redeemTable/>
<goalsPrograms/>
</loyalty>
</message>
|
En la respuesta aparece como quedarían estas tarjetas de confirmarse la operación. Se confirma la operación con el mismo mensaje, pero con el atributo status en "commit" en lugar de "loyaltyTransfer" o "rollback" para cancelar.
Al confirmar la operación....
Bloco de código | ||||||
---|---|---|---|---|---|---|
| ||||||
<message companyId="2" store="3" terminal="1" date-time="2023-07-11 10:30:00" init-tck="true" messageId="1" void-trx="false" response="true" status="commit" evaluate="true" suggest="false">
<loyaltycard-add seq="1" id="1600000000" type="7" />
<loyaltycard-add seq="2" id="1600000001" type="7" chargeAmount="500"/>
</message> |
Bloco de código | ||||||
---|---|---|---|---|---|---|
| ||||||
<?xml version="1.0" encoding="UTF-8"?><message ack="0" companyId="2" engine="7.2.6#282" mapversion="71" messageId="1" store="3" terminal="1" transaction="2_3_1_20230711103000"/>
|
se verá en la consola reflejado el cambio.
Âncora | ||||
---|---|---|---|---|
|
Âncora | ||||
---|---|---|---|---|
|
...