Advertencia: X euros pagados en vez de Y euros
Hemos observado en varias tiendas online, tanto en PrestaShop 1.6 como en PrestaShop 1.7, un error común: aparece una advertencia indicando que se ha pagado el doble de la cantidad que debería haber pagado el cliente.
PrestaShop es un CMS especializado en comercio electrónico que ofrece las herramientas necesarias para construir una tienda online. Aunque su instalación incluye una base bastante completa, configurarlo correctamente requiere conocer sus estados, módulos y funcionamiento interno.
En este tutorial vamos a centrarnos en el error «Advertencia: X euros pagados en vez de Y euros».
¿Por qué se produce este error de advertencia?
Hay quien relaciona este error con los módulos de pago de PayPal, Redsys o equivalentes, pero la causa depende de la advertencia mostrada. En este caso abordamos la situación en la que el importe registrado es siempre exactamente el doble de lo que debería haber pagado el cliente.
Mucho cuidado: el cliente no ha pagado realmente dos veces. Se trata de un error de configuración.
El error se produce al cambiar el estado del pedido. Después de realizar correctamente el pago, el primer estado es «Pago aceptado» y PrestaShop genera un registro en la zona de pagos del pedido.
El error aparece al cambiar el estado del pedido
Mientras el sistema solo contiene el registro generado por «Pago aceptado», no aparece la advertencia. Sin embargo, al cambiar el pedido a «Preparación en curso», «Enviado» o «Entregado», el problema puede reproducirse.
En el siguiente ejemplo se aplicó directamente el estado «Enviado». PrestaShop creó un segundo registro de pago por el mismo importe y comenzó a indicar que se habían pagado 314,84 € en lugar de 157,42 €.
La solución a la advertencia de pago doble de PrestaShop
La solución es sencilla: debemos configurar correctamente los estados «Enviado» y «Preparación en curso», que son los que están generando el segundo registro de pago.
Para hacerlo, abre el Back Office de PrestaShop y sigue esta ruta:
- Parámetros de la tienda.
- Configuración de pedidos.
- Pestaña Estados.
Desmarca «Establecer el pedido como pagado»
Entra en el estado «Preparación en curso» y localiza la opción «Establecer el pedido como pagado». Si está activada, desmárcala y guarda los cambios.
Repite el mismo procedimiento con el estado «Enviado». De este modo, cambiar el estado logístico del pedido no volverá a crear otro registro de pago.
Advertencia con un importe distinto, pero no exactamente el doble
Puede existir otro caso en el que el importe mostrado sea diferente por unos euros o céntimos respecto al importe pagado. Aunque la advertencia parezca igual, se trata de otro problema.
Este error se observó especialmente en PrestaShop 1.5 con el módulo de PayPal. El redondeo realizado por PrestaShop podía ser diferente al aplicado por PayPal, porque uno trataba los importes por producto y el otro sobre el total del carrito.
Cambiar el tipo de redondeo no siempre resolvía esas diferencias de céntimos. En el caso original, la solución aplicada fue actualizar de PrestaShop 1.5 a PrestaShop 1.7, algo que también resultaba necesario por seguridad y estabilidad.