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 e
rror en el pago con Paypal relacionado con la provincia (campo "city") y la dirección (campo "address") que impedía procesar el mismo.
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEii8dVl0rJqQ8s378mb6ifZcAWQ4_8ehf1AW5WCZnVvStHGVg9ttkzl6BVjwDvoiri6uIb74NnXUzqREJlrapfpZiScl-GxpCdI8VB17vVUKwNiRk5T8XqGTNdw6xSTorJgEI9Ki7_08cxZ/s400/paypal-error-prestashop.jpg) |
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?