En este artículo te explico como solucionar el bug de Paypal en PrestaShop 1.6.x que afecta específicamente a la versión 3.11.4 de esta pasarela.
Existen innumerables pasarelas de pago para PrestaShop 1.6.x que son utilizadas a diario en millones de tiendas online por todo el mundo, pero si una se lleva la palma de la mano es Paypal, junto con los métodos tradicionales de reembolso y transferencia.
No obstante de cuando en cuando surge algún problema que hay que solucionar para seguir vendiendo. En el caso de Paypal se convierte en algo un poco más laborioso de detectar si no se tiene el conocimiento o experiencia suficiente en la gestión y administración de este método de pago.
Tabla de contenidos
El problema con el módulo de Paypal
El problema se viene detectando desde versiones 1.6.1.4 (enero de 2016) que sigue persistente en la actual versión 1.6.1.17 (a fecha de este artículo) si bien que depende de la versión del módulo de Paypal que utilices.
El caso se da en instalaciones donde se tiene habilitado el checkout en un solo paso.
Haz clic en la imagen para ampliarla
Usuarios del modulo One Page Checkout también pueden verse afectados por este problema.
La versión del módulo de Paypal afectada es la 3.11.4 que puedes ver en la siguiente imagen:
Haz clic en la imagen para ampliarla
Este módulo, en la citada versión, pese a gestionarse correctamente el el checkout, no envía las notificaciones de la venta y no tienen en cuenta el campo de aceptación de condiciones de la venta, lo que puede traer de cabeza al administrador de la tienda que no tiene constancia de la compra y del pago y al comprador que no puede completar el proceso lo que produce un abandono del carrito.
Es decir, tus compradores añaden productos al carrito, se registran o identifican como compradores en la tienda para procesar la compra, escogen el método de envío y marcan la casilla de aceptación y son redireccionados a la página de confirmación del pago de Paypal.
Haz clic en la imagen para ampliarla
Reciben un aviso indicando que deben aceptar las condiciones de la venta aún habiendo seleccionado la casilla correspondiente.
Corrección del problema
En primer lugar revisa tu lista de países en Localización, Países y verifica que tienes activados y debidamente configurados aquellos en los que realizas ventas, por ejemplo si vendes en España, la configuración debe ser similar a la mostrada en la imagen.
Haz clic en la imagen para ampliarla
Luego haz una copia de seguridad de tu tienda.
Lectura recomendada:
Copias de Seguridad desde el Panel de Hosting WePanel
Desde tu WePanel, Archivos, Administrador de Archivos, accede a la carpeta public_html/modules/paypal/views/js y localiza el archivo paypal.js.
Edítalo con el “Editor de Código” del Administrador de Archivos (Edit) y comenta las siguientes líneas:
$('#container_express_checkout').hide(); if(jquery_version[0] >= 1 && jquery_version[1] >= 7) { $('body').on('click',"#cgv", function () { if ($('#cgv:checked').length != 0) $(location).attr('href', '{/literal}{$paypal_confirmation}{literal}'); }); } else { $('#cgv').live('click', function () { if ($('#cgv:checked').length != 0) $(location).attr('href', '{/literal}{$paypal_confirmation}{literal}'); }); /* old jQuery compatibility */ $('#cgv').click(function () { if ($('#cgv:checked').length != 0) $(location).attr('href', '{/literal}{$paypal_confirmation}{literal}'); }); }
Te lo ilustro en la siguiente captura por si no tienes claro cómo comentar un bloque de código.
Haz clic en la imagen para ampliarla
Otra solución es eliminar dicho bloque de código del archivo paypal.js afectado.
Indicarte que la redirección se aplica si la variable $paypal_confirmation es verdadera (true) y se declara en el archivo /modules/paypal/paypal.php en la línea 322 (aproximadamente).
Haz clic en la imagen para ampliarla
Guarda los cambios y limpia la cache de PrestaShop para posteriormente verificar en la siguiente compra si el proceso se notifica y se pasa de las “condiciones de la venta” en el checkout.
No olvides eliminar el archivo class_index.php para que la regeneración de caché sea efectiva.
Haz clic en la imagen para ampliarla
Esperemos que se solucione en posteriores versiones del módulo de Paypal para PrestaShop 1.6.x
Este es un fallo de los que te puedes encontrar en tu Tienda procesando pagos con Paypal, no obstante no siempre se van a dar estas condiciones por lo que tan importante es mantener tus módulos actualizados así como el CMS, como lo es el realizar pruebas periódicas de funcionamiento de tus pasarelas de cobro, a fin de cuentas son el motor para que tus ventas lleguen a buen fin.
¿Te ha resultado útil este artículo?
Miembro del equipo de soporte técnico de Webempresa.
Coordinador de contenidos en el Blog y en Youtube.
Soporte técnico en CiberProtector. Teacher en Webempresa University