Necesitas mi libro "Claves para abrir una tienda online y que venda" y lo sabes...


¿Quieres comprarlo en otro sitio?

Amazon | Casa del Libro

Error en pago sin registro con Paypal en Prestashop 1.6

En los pedidos realizados por clientes no registrados, con perfil Invitado usando la opción de compra sin registro o express checkout, ocurría un error en el pago con Paypal relacionado con la provincia (campo "city") y la dirección (campo "address") que impedía procesar el mismo.

Pulsa para ampliar


Descartado que el problema fuera del módulo de pago rápido instalado ("SuperCheckout") ya que al seleccionar pago por Paypal sí valida y guarda correctamente los campos de Provincia y Dirección y además, viendo el código fuente de la página destino se comprueba que  también llegan los datos HASTA Paypal:

      "shipping_address": {
                        "first_name": "jose",
                        "last_name": "luis",
                        "line1": "mi direccion , 5",
                        "city": "murcia",
                        "state": "ES-MU",
                        "country_code": "ES",
                        "postal_code": "30009"

 

     
El problema está en el módulo de Paypal (versión 3.10.2 en mi caso).

Las soluciones "provisionales" que tenía era desactivar Paypal SOLO para el grupo de Invitados o compras sin registro (Backoffice > Grupos de clientes) o dejar pasar el pedido con el error y contactar con el cliente antes usar la opción "Transformar invitado en cliente" del detalle del pedido.

La solución definitiva que llevé a cabo fue modificar el modules\paypal\express_checkout\payment.php

    Linea 98:   $address->address1 = $ppec->result['PAYMENTREQUEST_0_SHIPTOSTREET'];
    cambiar por:  $address->address1 = $customer->address1;

    Línea 101:   $address->city = $ppec->result['PAYMENTREQUEST_0_SHIPTOCITY'];
    cambiar por: $address->city = $customer->city;


Por cierto, ¿te he dicho ya que mi libro sigue de los más vendidos en Amazon?

No hay comentarios:

Publicar un comentario