Como solucionar el error 10729 de Paypal en Prestashop

PayPal response:10729L_SHORTMESSAGE0 -> Shipping Address State EmptyL_LONGMESSAGE0 -> The field Shipping Address State is requiredL_SEVERITYCODE0 -> Error

Este error trae de cabeza a muchos administradores y dueños de tiendas basadas en Prestashop y que usan Paypal como medio de pago.

A un cliente, de un día para otro empezaron a ver como los pagos en sus pedidos eran rechazados por paypal en el momento de terminar y volver a la tienda, lo peor es que si el cliente no estaba atento creía que su compra se había realizado correctamente.

Después de mucho investigar en los foros oficiales de presta, probar mil soluciones propuestas, por ejemplo, cambiar la forma de pago en la configuración del módulo de Paypal, quitando el Pago exprés.7

Cambiar Pago Express Paypal y Prestashop

Cambiando la última versión de Paypal y añadiendo una antigua, etc….

Y ninguna funciona.

Entonces me puse a pensar despacio, según Paypal el error ocurre porque la provincia (state) no se propagaba bien de Prestashop a la plataforma de pago.   Revise los usuarios y resulta que a veces ocurría con antiguos y otros nuevos, no tenía sentido porque es un campo obligatorio al registrar una dirección.

Este fallo se produce tanto en clientes antiguos, como nuevos, con pagos con tarjeta en Paypal o con aquellos que tienen una cuenta allí, realmente no daba con la excepción que hacía que algunos pudieran finalizar la compra y otros no.

Así que tome el carril de en medio y modifiqué el archivo order-address.tpl del tema de mi cliente.

Añadí el siguiente código (en rojo) que oculta el botón Siguiente, si detecta que la dirección tienen la provincia (state) con valor 0.

{foreach from=$addresses key=k item=address}
      {if (($address.id_state|intval) != 0)}

        <input type=»submit» name=»processAddress» value=»{l s=’Next’} &raquo;» class=»exclusive» />

     {/if}
{/foreach}

Si queréis avisar al cliente como seguir, debéis añadir debajo de <p class=»address_add submit»>:

{foreach from=$addresses key=k item=address}

     {if (($address.id_state|intval) == 0)}

            <p class=»address_add submit»> {l s=’LAS DIRECCIONES NO TIENEN PROVINCIA SELECCIONADA,SI CONTINUA NO                    PODRÁ FINALIZAR LA COMPRA.’}</p>
           <p class=»address_add submit»> {l s=’TAMPOCO OLVIDE SELECCIONAR LA PROVINCIA EN PAYPAL’}</p>
    {/if}
{/foreach}

 

Desde que lo subimos a producción no ha vuelto a dar un fallo.

Espero que esto os ayude y no paréis de recibir pedidos.

Deja un comentario