Prestashop – Módulo Paypal. Solución al error de pago en pedidos y problema en el redondeo de los precios de los productos
Explicamos por qué se genera el estado de error de pago en los pedidos pagados a través del módulo oficial de Paypal en las tiendas Prestashop. Detallamos las causas que provocan que los clientes realicen pagos de cantidades diferentes a las que figuran en el carrito de compra de la tienda.
¿Cuáles son las causas que ocasionan el estado de error de pago y la diferencia de importes pagados por los clientes mediante el módulo oficial de Paypal en Prestashop?
Al día de hoy, este problema es uno de los que sigue trayendo de cabeza a muchos usuarios y propietarios de tiendas online Prestashop. Sorprendentemente todavía no se ha aplicado ninguna solución de manera oficial y por lo tanto, sigue apareciendo en las últimas versiones del módulo oficial de Paypal. Incluso todavía en tiendas Prestashop versión 1.7, tenemos clientes que nos han reportado este mismo problema.
El origen y también la explicación del problema está en lo siguiente:
Por un lado tenemos el sistema de redondeo que usa Prestashop y que se puede elegir entre varias opciones dentro del selector «Tipo de redondeo» ubicado en el Back-office:
Parámetros de la tienda -> Configuración -> Tipo de redondeo
Prestashop nos permite elegir entre los siguientes tipos de redondeos:
- Redondear en cada artículo
- Redondear en cada línea (Ese es el sistema usado por Paypal)
- Redondear sobre el total
Por otro lado tenemos el módulo de Paypal, que mediante su propia API, calcula el importe de los impuestos de cada producto usando su propio sistema de redondeo.
El sistema de redondeo de Paypal es independiente del sistema utilizado por Prestashop y está basado en el redondeo de precios por cada línea de productos.
En el hecho de que las dos plataformas realizan sus propios cálculos, ocasiona que frecuentemente existan diferencias entre los importes que calcula Prestashop en los carritos de compra y los importes calculados por Paypal en el proceso de pago.
Esta es la explicación resumida de por qué ocurre este problema.
Para profundizar un poco más en el tema. ¿Qué ocurre durante el proceso de compra?
Durante el proceso de compra, Prestashop envía a Paypal toda la información detallada del carrito de compra con todos los importes que previamente a redondeado dependiendo de la opción seleccionada en el Back-office.
Paypal, a través de su API, calcula los importes de cada producto y le aplica su propio redondeo (redondeo por cada línea de productos) después de sumarle los impuestos a cada precio base enviado por Prestashop.
Durante este proceso, por un lado tenemos los importes del carrito de compra de Prestashop y por otro lado tenemos los importes que calcula Paypal y que serán los que definitivamente se cobre al cliente.
Siempre que los clientes realicen compras de pocas unidades de productos o que los precios de dichos productos sean altos, los importes calculados por Prestashop y los importes calculados por Paypal coincidirán y no existirá el problema mencionado. Sin embargo, cuando se realizan compras de muchas cantidades de productos y los precios de estos productos son bajos (menos de un euro por unidad), es cuando se origina la diferencia de los importes calculados por ambas plataformas a causa de la acumulación de errores durante el cálculo del redondeo de cada unidad.
Después de finalizar el pago en Paypal, la API devuelve la información de la operación a Prestashop. Entre esta información se encuentra el importe total real pagado por el cliente. Por lo que al existir diferencia entre el importe total calculado Prestashop y el importe real pagado mediante Paypal, Prestashop gestiona la operación como un error en el pago, mostrando el estado «Error de pago» cuando se genera el pedido.
Mostramos un ejemplo de una situación real en una tienda Prestashop donde ocurre el error del cálculo de los importes en el módulo de Paypal
En el ejemplo que mostramos en las imágenes podemos ver que en una tienda Prestashop, el importe total de la compra son 265.16€ impuestos incluidos, el precio base son 219.14€ y los impuestos totales son 46.02€. Al elegir el método de pago por Paypal y ser redirigidos a la plataforma de pago, vemos que el importe total a pagar es 266.29€ (Una diferencia de 1.13€), importe superior al mostrado en la tienda Prestashop y que el cliente al final tiene que pagar de más. Podemos comprobar que el error está en el cálculo de total de los impuestos por parte de Paypal (47.15€).
Tabla con desglose de importes del ejemplo real mostrado
CONCEPTOS | PRESTASHOP | PAYPAL |
Importe base | 219.14€ | 219.14€ |
Importe total con impuestos | 265.16€ | 266.29€ |
Importe total de los impuestos (21%) | 46.02€ | 47.15€ |
Analizando el ejemplo anterior, vemos que existe una diferencia de cantidad a pagar entre los importes mostrados en el carrito de compra de Prestashop y el importe calculado por Paypal que es el que realmente se va a cobrar al cliente. Esta diferencia está en la cantidad procedente del cálculo de los impuestos.
Además del error en el pago que se origina en el pedido, también los clientes se dan cuenta que han pagado una cantidad diferente a la que se muestra en la tienda Prestashop. Esta situación deriva en indignación entre los clientes y envío de reclamaciones. La situación empeora cuando el importe a pagar en Paypal es muy superior al mostrado en la tienda Prestashop cuando se realizan compras masivas.
Cuando se da el caso de que el importe calculado por Paypal es inferior al mostrado en la tienda, se originan pérdidas económicas importantes para los negocios.
El problema del error de redondeo en el módulo de Paypal es más frecuente cuando las tiendas venden muchas cantidades de productos cuyos precios son muy bajos (importes inferiores a 1€).
En Liewebs hemos desarrollado una solución definitiva
Desde Liewebs hemos trabajado para ofrecer una solución perfecta a este problema de los redondeos en la plataforma Paypal para todas las versiones de Prestashop
Si realizamos una búsqueda exhaustiva por internet, podemos leer varios artículos que hablan sobre este problema. Incluso se proponen diferentes soluciones y «trucos» para poder solventar o minimizar este problema.
Esas soluciones en la mayoría de casos son un pequeño «apaño» que funcionan solo para algunas versiones de los módulos de Paypal de Prestashop. En otros sitios se plantea la modificación de los conceptos, importes y productos mostrados en Paypal. En este último caso se podría ocasionar problemas de gestión de compras en la plataforma Paypal si se utilizan sus herramientas avanzadas de gestión y facturas.
Nuestra solución está basada en la modificación de código fuente dentro del módulo de Paypal, consiguiendo enviar, de una manera específica, los datos de los productos e importes a Paypal mediante su API. Mandándole por un lado, los importes de los productos sin impuestos y por otro lado sus impuestos específicos.
De esta forma, su sistema calcula los importes de los productos y sus impuestos coincidiendo con el mismo cálculo que hace Prestashop. Se mantiene, por tanto, los importes y conceptos de compra siendo exactamente los mismos y no existiendo variación después de aplicar nuestro parche.
Como podéis ver en la imagen anterior, hemos conseguido no variar los conceptos de compra que se envían a la plataforma Paypal, por lo que nunca habrán problemas de gestión de compras en dicha plataforma, ya que la información enviada es la misma que antes de aplicar nuestro parche.
Al día de hoy es una de las mejores soluciones que podemos ofrecer a todos nuestros clientes e interesados que quieran adquirirla.
Para tu información, tienes que tener en cuenta que estas modificaciones requieren de una continua supervisión y revisión de las nuevas versiones del módulo de Paypal. De esta forma poder aplicar diferentes vesiones del parche dependiendo del código actualizado en cada versión del módulo de Paypal.