Jump to content

SOLUCIONADO Error gasto de envios, paypal, no coGe provincia


Pilar Ramos

Recommended Posts

Buenas tardes, estoy teniendo problemas con el tema de los gastos de envío en paypal que viene a 0€. ¿Alguna solución?

A pesar de que es obligatorio rellenar la provincia (a través de la cual se calcula el gasto de envio) cuando se paga por paypal resulta que no se cobran gastos de envio!!!

 

Por favor alguna ayuda

 

PrestaShop™ 1.6.0.6 

Tema : default-bootstrap

Edited by Pilar Ramos (see edit history)
  • Like 1
Link to comment
Share on other sites

Hola, refloto el tema porque a mi me pasa algo similar...

 

En mi caso (y creo que en el tuyo ocurre lo mismo) el problema viene dado porque PayPal sobreescribe la información de la dirección (y en concreto la de la provincia) en Prestashop y esta queda vacía (valor 0), y de ahí que no cobren los portes...

 

Existe una variable en el formulario que se envía desde Prestashop para conectarse con PayPal que se llama 'address_override' que por defecto tiene el valor 'true'. Yo lo modifiqué, le puse el valor 'false' y dejó de sobreescribir la información de la dirección en Prestashop, pero solo funcionó unos días, cuando sacaron el nuevo módulo esta semana volvió a empezar a fallar teniendo la variable a false tanto en el nuevo módulo como en el módulo antiguo...

 

En resumen, creo que la solución al problema sería dar con la forma en la que PayPal no sobreescriba la información de la dirección del usuario (para ello no se puede usar el pago express). PayPal se deberia de 'limitar' a cobrar el importe que se le indique y responder si la operación se realizó de manera correcta o no, tal y como hace una TPV...

 

Gracias de antemano por cualquier ayuda.

Link to comment
Share on other sites

Hola, a mi me pasa el mismo caso, pero con la agravante de que en el back office me sale mi direccion como direccion de envio. no se si lo coje de alguna prueba que hice o porque paypal traslada a prestashop mis datos personales. Con esto tengo un cliente que me realiza un pedido pero no se donde tengo que entregarlo. No se como solucionarlo.

Link to comment
Share on other sites

El problema es que paypal machaca la dirección que tienes y pone la suya (si os fijáis os cambia el nombre de la dirección a Paypal_Address). Además la provincia en Paypal es Es-A (en vez de Alicante) con lo que los datos que le pasas a paypal y el a la tienda difieren, con lo cuál Paypal no interpreta la provincia correctamente y al inrevés cuando te machaca la dirección no te pone provincia puesto que el nombre que tienes en prestashop es distinto al suyo.

 

Yo lo he solucionado evitando que Paypal me sobreescriba la dirección.

 

Se resuelve con lo que explican en el siguiente link:

 

http://www.prestashop.com/forums/topic/309248-paypal-address-overrides-my-address/

 

Mirad los posts 6 y 7 dependiendo si es pago express o pago estándar.

 

Saludos,

 

AÑADO: He hecho el upgrade a la 3.8 y he vuelto a cambiar en los 2 ficheros los 2 cambios que comentan. El módulo lo he probado y funciona correctamente y NO sobreescribe. Eso sí, yo sólo uso el pago estándar con el proceso de 5 pasos.

Edited by jaume1979 (see edit history)
  • Like 2
Link to comment
Share on other sites

Gracias jaume179!

 

Yo había modificado el valor de la variable address_override como comenté en mi post, pero como uso el pago estándar con el proceso de 5 pasos no hacía nada, la solución ha sido comentar las líneas de código y listo!

 

A ver si Pilar edita el post y lo pone como solucionado, ya que por mi parte al menos lo está :-)

 

Gracias de nuevo.

  • Like 2
Link to comment
Share on other sites

Hola jaume1979 y r3g1s,

 

Si tenéis un hueco libre, sería interesante que pudierais publicar también vuestro aporte (solución) en la sección de aportes: http://www.prestashop.com/forums/forum/168-modulos-gratis-sobrecargas-y-otras-astucias-que-cambian-la-vida/

 

Gracias a todos por colaborar con la Comunidad de Prestashop

Edited by nadie (see edit history)
  • Like 2
Link to comment
Share on other sites

Hola, gracias a todos!!!  Estoy mirando la solución pero me lio un poco...lo siento. r3g1s, por favor, me podrías escribir exactamente lo que tengo que modificar del código (paypal express)

Entindo que tengo que entrar en 

modules/paypal/express_checkout/payment.php

 

y una vez allí en esta parte:

 
$addresses = $customer->getAddresses($ppec->context->language->id);
foreach ($addresses as $address)
if ($address['alias'] == 'Paypal_Address')
{//If address has already been created
$address = new Address($address['id_address']);
break;
}
 
/* Create address */
if (is_array($address) && isset($address['id_address']))
$address = new Address($address['id_address']);
 
if ((!$address || !$address->id) && $customer->id)
{//If address does not exists, we create it
$address = setCustomerAddress($ppec, $customer);
$address->add();
}
else if ($customer->id)
{//If address exists, we update it with new informations
$address = setCustomerAddress($ppec, $customer, $address->id);
$address->save();
}
 
No entiendo exactamente qué debo modificar. Disculpadme... en estos temas estoy un poco pez.
  • Like 1
Link to comment
Share on other sites

Tienes que comentar las líneas donde se añaden y salvan la dirección. Por lo tanto los dos bloques de código finales del fichero quedarían de la siguiente forma:

 

if ((!$address || !$address->id) && $customer->id)
{//If address does not exists, we create it
$address = setCustomerAddress($ppec, $customer);
//$address->add();
}
else if ($customer->id)
{//If address exists, we update it with new informations
$address = setCustomerAddress($ppec, $customer, $address->id);
//$address->save();
}
 
Fíjate que el cambio con respecto al código que tu has pegado es que he puesto dos '/' antes de las líneas '$address->add();' y '$address->save();', por lo que las lineas quedan comentadas y no se ejecutaran.
 
Nadie, tengo que salir a una reunión ahora, pero el fin de semana o el lunes lo posteo en la otra sección si jaume no lo ha hecho antes.
  • Like 1
Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
×
×
  • Create New...