Manuales POS



VENT_SAD_06_Linzaug 4 mg promoción de 4+1

Audiencia 

Este documento está pensado para ser consumido por los equipos de:

  1. Soporte Farmax OR (Niveles 1 y 2)

  2. Equipo de desarrollo TI (Farmacias del Ahorro y proveedor externo)

 

Descripción general

No se respetó promoción en una venta de servicio a domicilio realizada desde la aplicación móvil.

El día de ayer 08/02/2024 un cliente solicitó por la app unos productos entre los cuales iba 75051389  linzaug 4 mg el cual tiene promoción de 4+1, para esto el cliente comenta que él ya anteriormente había comprado 1 y en este servicio él anexó 4 a lo que el sistema sin ningún detalle dejó hacer la compra, y en la suc al momento de cobrarlo solo tenía 3 piezas, a lo que en el ticket le salieron cobrados 2 y salió uno de obsequio el total del ticket está por $1,761.00 y al momento del cliente pagar en su domicilio e ingresar su tarjeta se le cobró un  monto de $2,140 a lo que se le está cobrando la otra pieza. 

 

Procedimiento de diagnóstico

Consulta de la orden SAD

 

Captura de pantalla de computadoraDescripción generada automáticamente

Vemos en el resultado de la consulta que se pidieron 3 piezas del producto 75051389, además de otros productos.

 

En el request de getPuntosProductos vemos que del sku 0000075051389 solo se solicitaron 2 piezas

REQUEST

[2024-02-08 16:11:11:669],FARMAX_WSC,MONEDERO,INFO,,Request:
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
     <s:Header>
       <Action s:mustUnderstand="1" xmlns="http://schemas.microsoft.com/ws/2005/05/addressing/none">https://pos.monederodelahorro.net/online2/getPuntosProductos</Action>
     </s:Header>
     <s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
       <getPuntosProductos xmlns="https://pos.monederodelahorro.net/online2/">
         <sTarjeta>4600646037642</sTarjeta>
         <sSucId>1876</sSucId>
         <sCajaId>22</sCajaId>
         <sTerminalId>179796</sTerminalId>
         <sSessionId>13897517004</sSessionId>
         <sArticulos>7502223709447,2,54.5,109.0|7501061001003,2,283,566|7501070635664,1,318,318|0000075051389,2,379,758|7506472801310,1,10.0000,10.0000</sArticulos>
         <sAuthCode>d98c9ff72fb6dbd0843d61e81bcdb2bd</sAuthCode>
       </getPuntosProductos>
     </s:Body>
   </s:Envelope>

En el response vemos que Origis otorga una pieza extra a las dos que se pidieron para el sku 0000075051389

Response

[2024-02-08 16:11:11:669],FARMAX_WSC,MONEDERO,INFO,,Response:<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
     <s:Header xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" />
     <soap:Body>
       <getPuntosProductosResponse xmlns="https://pos.monederodelahorro.net/online2/">
         <getPuntosProductosResult>
           <xs:schema id="NewDataSet" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
             <xs:element name="NewDataSet" msdata:IsDataSet="true" msdata:UseCurrentLocale="true">
               <xs:complexType>
                 <xs:choice minOccurs="0" maxOccurs="unbounded">
                   <xs:element name="FirstTable">
                     <xs:complexType>
                       <xs:sequence>
                         <xs:element name="SESSION_ID" type="xs:decimal" minOccurs="0" />
                         <xs:element name="ARTICULOS" type="xs:string" minOccurs="0" />
                         <xs:element name="MSGERR" type="xs:int" minOccurs="0" />
                         <xs:element name="MENSAJE" type="xs:string" minOccurs="0" />
                       </xs:sequence>
                     </xs:complexType>
                   </xs:element>
                 </xs:choice>
               </xs:complexType>
             </xs:element>
           </xs:schema>
           <diffgr:diffgram xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" xmlns:diffgr="urn:schemas-microsoft-com:xml-diffgram-v1">
             <NewDataSet xmlns="">
               <FirstTable diffgr:id="FirstTable1" msdata:rowOrder="0">
                 <SESSION_ID>13897517004</SESSION_ID>
                 <ARTICULOS>7502223709447,2,0,0,0,0,0,0,0|7501061001003,2,0,0,5.66,0,0,1,0|7501070635664,1,0,0,3.18,0,0,1,0|0000075051389,2,0,1,0,97734,0,0,0|7506472801310,1,0,0,0,0,0,0,0</ARTICULOS>
                 <MSGERR>0</MSGERR>
                 <MENSAJE>Su compra participará en el programa de lealtad de Monedero del Ahorro, en el cual no hay devoluciones. Felicidades!, Usted obtuvo los siguientes productos gratis: 
   0000075051389 LINZAUG 4MGML 10 ML.</MENSAJE>
               </FirstTable>
             </NewDataSet>
           </diffgr:diffgram>
         </getPuntosProductosResult>
       </getPuntosProductosResponse>
     </soap:Body>
   </soap:Envelope>
 

Aquí hacemos énfasis que la promoción actual para este producto es un 3+1 como se puede ver en la siguiente consulta: 

 

Interfaz de usuario gráfica, Texto, Aplicación, Correo electrónicoDescripción generada automáticamente


 

Examinado el log del monedero, vemos que posteriormente se hizo una llamada al servicio setProductosRechazo, y que el motivo fue Inventory. Por lo que deducimos que solo había en la sucursal 2 piezas, por eso el request anterior enviaba solo dos piezas en lugar de 3 que tenía la orden. El motivo era que solo había dos piezas.

 

[2024-02-08 16:12:46:146],FARMAX_WSC,MONEDERO,INFO,,Request:<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
     <s:Header>
       <Action s:mustUnderstand="1" xmlns="http://schemas.microsoft.com/ws/2005/05/addressing/none">https://pos.monederodelahorro.net/online2/setProductosRechazo</Action>
     </s:Header>
     <s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
       <setProductosRechazo xmlns="https://pos.monederodelahorro.net/online2/">
         <sTarjeta>4600646037642</sTarjeta>
         <sSucId>1876</sSucId>
         <sCajaId>22</sCajaId>
         <sTerminalId>179796</sTerminalId>
         <sSessionId>13897517004</sSessionId>
         <sArticulos>0000075051389,1</sArticulos>
         <sRechazoMotivo>Inventory</sRechazoMotivo>
         <sAuthCode>d98c9ff72fb6dbd0843d61e81bcdb2bd</sAuthCode>
       </setProductosRechazo>
     </s:Body>
   </s:Envelope>

 

Response

 

[2024-02-08 16:12:46:146],FARMAX_WSC,MONEDERO,INFO,,Response:<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
     <s:Header xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" />
     <soap:Body>
       <setProductosRechazoResponse xmlns="https://pos.monederodelahorro.net/online2/">
         <setProductosRechazoResult>
           <xs:schema id="NewDataSet" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
             <xs:element name="NewDataSet" msdata:IsDataSet="true" msdata:UseCurrentLocale="true">
               <xs:complexType>
                 <xs:choice minOccurs="0" maxOccurs="unbounded">
                   <xs:element name="FirstTable">
                     <xs:complexType>
                       <xs:sequence>
                         <xs:element name="SESSION_ID" type="xs:string" minOccurs="0" />
                         <xs:element name="ARTICULOS" type="xs:string" minOccurs="0" />
                         <xs:element name="MSGERR" type="xs:int" minOccurs="0" />
                         <xs:element name="MENSAJE" type="xs:string" minOccurs="0" />
                       </xs:sequence>
                     </xs:complexType>
                   </xs:element>
                 </xs:choice>
               </xs:complexType>
             </xs:element>
           </xs:schema>
           <diffgr:diffgram xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" xmlns:diffgr="urn:schemas-microsoft-com:xml-diffgram-v1">
             <NewDataSet xmlns="">
               <FirstTable diffgr:id="FirstTable1" msdata:rowOrder="0">
                 <SESSION_ID>13897517004</SESSION_ID>
                 <ARTICULOS>7502223709447,2,0,0,0,0,0,0,0|7501061001003,2,0,0,5.66,0,0,1,0|7501070635664,1,0,0,3.18,0,0,1,0|0000075051389,2,0,0,0,97734,0,0,0|7506472801310,1,0,0,0,0,0,0,0</ARTICULOS>
                 <MSGERR>0</MSGERR>
                 <MENSAJE />
               </FirstTable>
             </NewDataSet>
           </diffgr:diffgram>
         </setProductosRechazoResult>
       </setProductosRechazoResponse>
     </soap:Body>
   </soap:Envelope>

Cuando ocurre un rechazo y el motivo de rechazo es Inventory, sale un aviso en pantalla indicando que el regalo no se entregará en ese momento porque no hay existencia, pero se otorgará en una siguiente visita.

Ahora vemos en el response de commitTrans que no hubo regalo, lo vemos en las leyendas: 

[2024-02-08 16:12:46:147],FARMAX_WSC,MONEDERO,INFO,,Request:<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
     <s:Header>
       <Action s:mustUnderstand="1" xmlns="http://schemas.microsoft.com/ws/2005/05/addressing/none">https://pos.monederodelahorro.net/online2/commitTrans</Action>
     </s:Header>
     <s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
       <commitTrans xmlns="https://pos.monederodelahorro.net/online2/">
         <sTarjeta>4600646037642</sTarjeta>
         <sSucId>1876</sSucId>
         <sCajaId>22</sCajaId>
         <sTerminalId>179796</sTerminalId>
         <sSessionId>13897517004</sSessionId>
         <sArticulos>0000075051389,3,379,1137</sArticulos>
         <sNumTicket>V18762200048525</sNumTicket>
         <sSaldoRedimido>0</sSaldoRedimido>
         <sImporteTotal>1761.0000</sImporteTotal>
         <sFechaOperacion>20240208</sFechaOperacion>
         <sEntregaDomicilio>2</sEntregaDomicilio>
         <sFormaPago>0</sFormaPago>
         <sAuthCode>d98c9ff72fb6dbd0843d61e81bcdb2bd</sAuthCode>
       </commitTrans>
     </s:Body>
   </s:Envelope>
[2024-02-08 16:12:46:147],FARMAX_WSC,MONEDERO,INFO,,Response:<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
     <s:Header xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" />
     <soap:Body>
       <commitTransResponse xmlns="https://pos.monederodelahorro.net/online2/">
         <commitTransResult>
           <xs:schema id="NewDataSet" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
             <xs:element name="NewDataSet" msdata:IsDataSet="true" msdata:UseCurrentLocale="true">
               <xs:complexType>
                 <xs:choice minOccurs="0" maxOccurs="unbounded">
                   <xs:element name="FirstTable">
                     <xs:complexType>
                       <xs:sequence>
                         <xs:element name="SESSION_ID" type="xs:string" minOccurs="0" />
                         <xs:element name="AUTORIZACION" type="xs:string" minOccurs="0" />
                         <xs:element name="ARTICULOS" type="xs:string" minOccurs="0" />
                         <xs:element name="SALDO_PUNTOS" type="xs:decimal" minOccurs="0" />
                         <xs:element name="SALDO_DESGLOSE1" type="xs:decimal" minOccurs="0" />
                         <xs:element name="SALDO_DESGLOSE2" type="xs:decimal" minOccurs="0" />
                         <xs:element name="ABONO_RECORDPROMOCION" type="xs:decimal" minOccurs="0" />
                         <xs:element name="LEYENDATICKET1" type="xs:string" minOccurs="0" />
                         <xs:element name="LEYENDATICKET2" type="xs:string" minOccurs="0" />
                         <xs:element name="LEYENDATICKET3" type="xs:string" minOccurs="0" />
                         <xs:element name="MSGERR" type="xs:int" minOccurs="0" />
                         <xs:element name="MENSAJE" type="xs:string" minOccurs="0" />
                       </xs:sequence>
                     </xs:complexType>
                   </xs:element>
                 </xs:choice>
               </xs:complexType>
             </xs:element>
           </xs:schema>
           <diffgr:diffgram xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" xmlns:diffgr="urn:schemas-microsoft-com:xml-diffgram-v1">
             <NewDataSet xmlns="">
               <FirstTable diffgr:id="FirstTable1" msdata:rowOrder="0">
                 <SESSION_ID>13897517004</SESSION_ID>
                 <AUTORIZACION>1501684983</AUTORIZACION>
                 <ARTICULOS>7502223709447,2,0,0,0,0,0,0,0|7501061001003,2,0,0,5.66,0,0,1,0|7501070635664,1,0,0,3.18,0,0,1,0|0000075051389,2,0,0,0,97734,0,0,0|7506472801310,1,0,0,0,0,0,0,0</ARTICULOS>
                 <SALDO_PUNTOS>117.63698988</SALDO_PUNTOS>
                 <SALDO_DESGLOSE1>78.0609992799997</SALDO_DESGLOSE1>
                 <SALDO_DESGLOSE2>21.9390007200003</SALDO_DESGLOSE2>
                 <ABONO_RECORDPROMOCION>8.84</ABONO_RECORDPROMOCION>
                 <LEYENDATICKET1 />
                 <LEYENDATICKET2>Su compra ha sido acumulada a su historial de promoción.</LEYENDATICKET2>
                 <LEYENDATICKET3>****************************************************|Record Promoción: e$78.06|Te faltan e$21.94 para ganar e$100.|****************************************************|</LEYENDATICKET3>
                 <MSGERR>0</MSGERR>
                 <MENSAJE />
               </FirstTable>
             </NewDataSet>
           </diffgr:diffgram>
         </commitTransResult>
       </commitTransResponse>
     </soap:Body>
   </soap:Envelope>

Consultamos la base para ver la información de la transacción

 

select idTransaccion, folioTransaccion, codigoSucursal, fechaTransaccion, subtotal, iva, folioMonedero, 
        idSesionMonedero, idAutorizacionMonedero, puntosGenerados, tieneProgramaLealtad, sadOrdenId 
from trnTransaccionesCab with (nolock) where folioTransaccion='V18762200048525';
select idTransaccion, renglon, codigoProducto, codigoRelacionado, precioVenta, cantidadVendida, importeDescuento, cantidadBonificada
 from trnTransaccionesDet with (nolock) where idTransaccion='EB4B1EEF-CEC6-EE11-83E7-8CDCD4515E26';
select idTransaccion, renglon, codigoProducto, folioProgramaLealtad, programaLealtad, numeroAutorizacion, cantidad, idPromocion, idSession
from trnRecompensasProgramaLealtad with (nolock) where idTransaccion='EB4B1EEF-CEC6-EE11-83E7-8CDCD4515E26';
select sadOrdenId, fechaOrden, costoTotal, costoRealTotal, cantidadArticulos, monedero
from sadOrdenes with (nolock) where sadOrdenId='0EB66826-84E2-413C-BCA6-C13EBF3C9292';

 

Vemos que el importe total fue de 1761. Se vendieron dos piezas 75051389. 

Hay una pieza 75051389 de bonificación con numeroAutorizacion 0 (esta pieza aún no se entrega).

En la tabla sadOrdenes el campo costoRealTotal tiene el valor de la venta.

 

Interfaz de usuario gráfica, Texto, AplicaciónDescripción generada automáticamente


 

Ahora vemos la reimpresión del ticket, el importe 1761 corresponde con lo almacenado en la base de datos, pero vemos que el ticket indica que hubo OBSEQUIO 1*75051389 LINZAUG 4MG/ML 10ML 1389, lo cual no es correcto porque aún no se entrega.

TextoDescripción generada automáticamente

Revisando el código que arma la sección del ticket que contiene la información de los beneficios de las promociones, vemos que hacen una validación donde loyaltyAuthorizationNumber sea diferente de vacío o de nulo.

 

TextoDescripción generada automáticamente


 

Pero el numeroAutorizacion del beneficio es 0. Lo cual es un error que hace que aparezca un obsequio que aún no se entrega en el ticket de la reimpresión.

De acuerdo con lo anterior podemos concluir que: 

  1. Al cliente se le cobraron las tres piezas que originalmente había pedido en el APP, pero al solo haber 2 en existencia, la venta quedo registrada con dos piezas; quedando así una pieza cobrada pero que no se entregó y adicional una pieza de bonificación que debía entregarse por la promoción existente para el producto 75051389 LINZAUG 4MG/ML 10ML. 

  2. Origis al surtir la comanda indicó la bonificación de 1 pieza extra, a pesar de que solo se ingresaron 2 piezas y que la promoción actual es un 3+1 en el que el consumo mínimo es de 3 productos. 

  3. En la reimpresión del ticket se está realizando mal la validación para construir la sección de promociones ya que está indicando productos bonificados cuando éstos están pendientes de entrega, lo cual se considera un Bug. 

  4. El cliente tiene pendiente de entrega 2 productos. 

 

Procedimiento de solución

No aplica.

Validación

No aplica.

Notificación de resolución

Se procede a colocar las conclusiones en Proactivanet.

Incidencias relacionadas

INC 2024-056540
INC 2024-094423
INC 2024-112407

Glosario

Revisa el glosario del equipo de soporte de Farmacias del ahorro aqui

Description
INC 2024-056540 INC 2024-094423 INC 2024-112407
Categoría: Ordenes SAD Promociones
Tags
promociones sad
Most Recent
CAJAS_01_Mantenimiento_Caja Previous