Pilar Ramos Posted November 19, 2014 Share Posted November 19, 2014 (edited) 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 November 21, 2014 by Pilar Ramos (see edit history) 1 Link to comment Share on other sites More sharing options...
r3g1s Posted November 20, 2014 Share Posted November 20, 2014 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 More sharing options...
joanxavier1123 Posted November 20, 2014 Share Posted November 20, 2014 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 More sharing options...
jaume1979 Posted November 21, 2014 Share Posted November 21, 2014 (edited) 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 November 21, 2014 by jaume1979 (see edit history) 2 Link to comment Share on other sites More sharing options...
r3g1s Posted November 21, 2014 Share Posted November 21, 2014 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. 2 Link to comment Share on other sites More sharing options...
nadie Posted November 21, 2014 Share Posted November 21, 2014 (edited) 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 November 21, 2014 by nadie (see edit history) 2 Link to comment Share on other sites More sharing options...
Pilar Ramos Posted November 21, 2014 Author Share Posted November 21, 2014 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. 1 Link to comment Share on other sites More sharing options...
r3g1s Posted November 21, 2014 Share Posted November 21, 2014 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. 1 Link to comment Share on other sites More sharing options...
Pilar Ramos Posted November 21, 2014 Author Share Posted November 21, 2014 Perfecto!!! de momento ha funcionado!! Muchisimas gracias a todos, gracias r3g1s!!!! 1 Link to comment Share on other sites More sharing options...
nadie Posted November 24, 2014 Share Posted November 24, 2014 No pasa nada r3g1s, cuando tengo un hueco (es sin compromiso). Como veo que el tema ha quedado solucionado y el autor del tema lo ha dejado como solucionado, procedo a cerrar el tema. Saludos, Link to comment Share on other sites More sharing options...
Recommended Posts