r3g1s Posted November 24, 2014 Share Posted November 24, 2014 Buenos días. Hay un problema que nos ha pasado ya a varios usuarios del foro y está relacionado con el módulo de PayPal. El problema viene dado porque PayPal sobreescribe la información de la dirección del usuario en Prestashop, lo hace mal (en mi caso particular he detectado que elimina la información de la provincia del usuario en la base de datos), recalcula los portes y o bien no los cobra o cobra otro importe que no corresponde. Dependiendo de el modo de pago seleccionado (exprés o estándar) hay que modificar uno u otro fichero, aunque vale más hacer los cambios en ambos ficheros por si en el futuro se activa una u otra opción. Pago express Hay que modificar en el fichero /modules/paypal/views/templates/hook/integral_evolution_payment.tpl El valor del campo address_override de true a false, quedando por lo tanto así: <input type="hidden" name="address_override" value="false" /> Pago estándar Hay que comentar en el fichero /modules/paypal/express_checkout/payment.php Las lineas $address->add(); y $address->save(); , quedando por lo tanto así: /* 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(); } Por último destacar que habrá que hacer estas modificaciones cada vez que se actualice el módulo, ya que por ejemplo la semana pasada actualizaron a la versión 3.8.0 y hoy mismo han sacado la versión 3.8.1 que sobreescribe los ficheros, por lo que es necesario volver a realizar estos cambios. Un saludo! 1 Link to comment Share on other sites More sharing options...
manujerez Posted November 25, 2014 Share Posted November 25, 2014 Buenas tardes, con la solución que pusiste te ha vuelto a dar problemas en el tema de portes / provincia con la versión 3.8.1??Tengo el mismo problema, unas veces lo cobra y otras no, y la provincia se "pierde" en la mayoría de los casos. Esto último es lo de menos, pero lo más importante es obviamente cuando olvida sumar los portes. 1 Link to comment Share on other sites More sharing options...
r3g1s Posted November 26, 2014 Author Share Posted November 26, 2014 No, de momento no he tenido ningún problema. Al final si lo analizas, en el caso del pago estándar que es mi caso, estás comentando las líneas de código que guardan información en la base de datos, así que no tiene que haber ningún tipo de problema. 2 Link to comment Share on other sites More sharing options...
yeremaya Posted November 26, 2014 Share Posted November 26, 2014 Muchas gracias r3g1s, actualicé ayer el módulo y hoy me han entrado dos pedidos con gastos de envío cero. He hecho los cambios que comentas en el post a ver si con eso se soluciona y deja de dar problemas. Un saludo! Link to comment Share on other sites More sharing options...
manujerez Posted November 26, 2014 Share Posted November 26, 2014 De momento ningún problema desde que ayer actualicé el código tal y como señalas, dos pedidos con PayPal que han entrado con código comentado, y todo bien, 0 problemas.Gracias por la solución! 1 Link to comment Share on other sites More sharing options...
designerspain Posted November 27, 2014 Share Posted November 27, 2014 Hola amigos. Ante todo gracias por vuestro trabajo y particularmente a r3g1a. Gracias a vosotros algunos podemos subsistir con nuestras tiendas caseras. Yo acabo de lanzar mi tienda y anteayer tuve mi primer pedido. Y me pasó lo siguiente: La cliente fue a pagar. Añadió el pedido al carrito y al pagar lo hizo por paypal pensando que todavía se podía pagar con tarjeta sin abrir cuenta (lo cual ya no es así). Creó su cuenta y añadió su tarjeta de crédito. La cliente es Chilena pero vive en Barcelona. Y al parecer la tarjeta se la hizo en Chile. No se como pasó, mantuve unas conversaciones con ella y todavía no me lo explico. Mi tienda solamente estaba configurada para comprar desde España. Pues Paypal sobreescribió y Puso el país de Origen Chile y Provincia de Barcelona, No cargó el IVA y tampoco los portes. El producto que costaba 75€ me aparece en el pedido como 61,98€ + 0,00€ de gastos de envío. Lo curioso es que una vez llegó a pagar a PayPal, sí le pidió los 75€ pero no los gastos de envío. La verdad es que no lo consideré un problema recurrente pues pensé que se debía a la particular situación de la cliente de tener una tarjeta hecha en Chile viviendo aquí. Pero tras leer este post ya no estoy tan seguro. Creéis que con la modificación de módulo que propones se subsanará? Mi presta es: 1.5.6.2 Pago Standard Una duda más. Ya que paypal ha cambiado su política y ya no permite el pago con tarjeta sin abrir cuenta y por lo costoso econónicamente hablando y también de desarrollo y tiempo entre solicitud, aprobación y puesta en funcionamiento que supone instalar un TPV, estoy pensando instalar el TPV de Paypal que son 15€ al mes y permite, según ellos, una implementación completa con el diseño de la tienda sin tener que modificar nada en el módulo ya instalado. Alguno ha probado si con este tipo de implementación de Paypal se produce el mismo error? Un saludo Link to comment Share on other sites More sharing options...
manujerez Posted November 27, 2014 Share Posted November 27, 2014 Lo del tema de que te cobre 0 de envio se subsanó en mi caso con lo que comenta el usuario r3g1s, ya que el problema sucedía si PayPal obtenía la dirección PayPal del usuario y no la que tenía registrada el usuario en la web. Sobre el tema de no añadir el IVA, revísalo en la sección Impuestos de tu web, ya que creo que aún enviando a España en tu caso, si el cliente es de un país extranjero y en tu tienda no le suma el VAT a dicho país extranjero, no te sumnará el IVA. Tendrías que revisar la aplicación de VAt en los otros países.Lo que no estoy seguro es de que PayPal obligue a tener cuenta PayPal, en mi caso si hago la simulación de pago usando PayPal, me deja tanto elegir "pagar con mi cuenta PayPal" como "pagar con mi tarjeta de crédito" directamente.Saludos. Link to comment Share on other sites More sharing options...
designerspain Posted November 27, 2014 Share Posted November 27, 2014 (edited) Lo del tema de que te cobre 0 de envio se subsanó en mi caso con lo que comenta el usuario r3g1s, ya que el problema sucedía si PayPal obtenía la dirección PayPal del usuario y no la que tenía registrada el usuario en la web. Sobre el tema de no añadir el IVA, revísalo en la sección Impuestos de tu web, ya que creo que aún enviando a España en tu caso, si el cliente es de un país extranjero y en tu tienda no le suma el VAT a dicho país extranjero, no te sumnará el IVA. Tendrías que revisar la aplicación de VAt en los otros países. Lo que no estoy seguro es de que PayPal obligue a tener cuenta PayPal, en mi caso si hago la simulación de pago usando PayPal, me deja tanto elegir "pagar con mi cuenta PayPal" como "pagar con mi tarjeta de crédito" directamente. Saludos. Hola manujerez. En principio no me preocupa lo del IVA porque he supuesto que no cargó el IVA el pedido de la tienda porque se produjo una contradicción País/provincia a la hora de hacer el pedido y no calculó nada. Una vez llegó a Paypal este sí cargó el IVA... así que me imagino que el tema del IVA sí es problema de que el País fuera Chile cuando yo no tenía más países habilitados. En cuanto al tema del que trata esta página. He hablado con PayPal. Dicen reconocer el error, que les ha llegado antes el problema de otros usuarios. Que se lo van a pasar a un técnico de soporte y que me contestarán. En un principio le echaba la culpa a Prestashop y me recomendaba actualizar a la última versión. Ya le he dicho yo que esto no es wordpress y que las últimas versiones y más esta puede tener más bugs que la que tengo ahora. Y también que el problema era que su módulo sobreescribía los datos de paypal sobre los de presta, algo que no ocurría anteriormente. Por tanto el problema no es de prestashop. Ante mi amenaza de dejar de usar paypal si el error no podía ser subsanado lo han pasado a instancias superiores y ya veremos que me dicen. Sobre el tema del TPV virtual de Paypal dicen que cambia completamente la programación y el error ya no existe. "Me gustaría creermelo" pero no me lo creo visto lo visto. Al menos hasta que algún usuario del foro que lo haya probado pueda dar fe de ello. En cuanto a lo que comentas de que no hay que crear cuenta. Ya no es como antes. A mi también me aparece la opción de loguearte y abajo la de "pagar con tarjeta". Pero si entras y lees lo que pone, te indica bien claro que tienes que crear una cuenta. Antes si tenías el pago estandard (no el expres) no hacía falta crear cuenta, ponías los datos de la tarjeta y poco más. Ya tenía yo en otra tienda el tutorial de como hacerlo. Pero ahora hay que completar todos y cada uno de los campos del formulario y crear una cuenta de invitado (como la llama Paypal), incluida dirección y contraseña. No tienes que validar cuentas bancarias y tal pero has creado una cuenta de usuario, has puesto una dirección y te sobreescribe la dirección en la base de datos del presta. Mi cliente quería pagar con tarjeta y le obligó a hacer la cuenta. Y ahora le llueven los emails de paypal. Asi que ahora o te pillas un TPV tradicional (25/30€ al mes + comisiones) o coges el de paypal que vale 15€/mes más comisiones. Se lo han montado bien. Edited November 27, 2014 by designerspain (see edit history) Link to comment Share on other sites More sharing options...
designerspain Posted November 27, 2014 Share Posted November 27, 2014 (edited) Por cierto. Acabo de recibir un email en el que Paypal anuncia problemas por el que van a desactivar el protocolo SSL 3.0 y avisan de que hay que actualizar el módulo de paypal a la versión 3.8.1 antes del 3 de diciembre. No se si además de esto habrán incluido alguna solución a nuestros problemas. Edited November 27, 2014 by designerspain (see edit history) Link to comment Share on other sites More sharing options...
r3g1s Posted November 27, 2014 Author Share Posted November 27, 2014 Buenas! Sobre el tema de PayPal y sobreescribir datos en Prestashop: yo estoy con la 2.8.1 y tuve que volver a hacer los cambios que comentaba en este post. Sin tener un conocimiento profundo sobre el tema yo estoy convencido de que es un problema de PayPal. Y digo esto porque a mi no me entra en la cabeza por qué si seleccionas el pago stándar, es decir, en la práctica el mismo funcionamiento que un TPV (yo te paso un importe y tu me lo cobras y me dices si el cobro se hizo correctamente o se produjo un error en el pago), viene PayPal y se pone a sobreescribir información en Prestashop... Como mucho esto debería de ser una opción configurable, pero no tener que andar comentando líneas de código que para muchos usuarios dar con ello es algo engorroso. Otro tema diferente es el pago exprés, que oye, está muy bien que si el usuario selecciona el producto y le da a pagar en PayPal sin registarse en tu página, tiene toda la lógica del mundo que PayPal informe de los datos de dirección del usuario para poder enviarle en el pedido, pero en un pago estándar a mi que me lo expliquen... Insisto en que yo ya actualice a la 2.8.1 y tuve que volver a modificar el código. Respecto a la TPV de PayPal no tengo ni idea de como funciona, así que ahí no puedo opinar... Un saludo! Link to comment Share on other sites More sharing options...
designerspain Posted November 27, 2014 Share Posted November 27, 2014 Buenas! Sobre el tema de PayPal y sobreescribir datos en Prestashop: yo estoy con la 2.8.1 y tuve que volver a hacer los cambios que comentaba en este post. Sin tener un conocimiento profundo sobre el tema yo estoy convencido de que es un problema de PayPal. Y digo esto porque a mi no me entra en la cabeza por qué si seleccionas el pago stándar, es decir, en la práctica el mismo funcionamiento que un TPV (yo te paso un importe y tu me lo cobras y me dices si el cobro se hizo correctamente o se produjo un error en el pago), viene PayPal y se pone a sobreescribir información en Prestashop... Como mucho esto debería de ser una opción configurable, pero no tener que andar comentando líneas de código que para muchos usuarios dar con ello es algo engorroso. Otro tema diferente es el pago exprés, que oye, está muy bien que si el usuario selecciona el producto y le da a pagar en PayPal sin registarse en tu página, tiene toda la lógica del mundo que PayPal informe de los datos de dirección del usuario para poder enviarle en el pedido, pero en un pago estándar a mi que me lo expliquen... Insisto en que yo ya actualice a la 2.8.1 y tuve que volver a modificar el código. Respecto a la TPV de PayPal no tengo ni idea de como funciona, así que ahí no puedo opinar... Un saludo! Muchas gracias por tu respuesta. Probaré tu solución a ver como va y me guardaré una copia del módulo original por si acabo instalando el TPV de paypal y tengo que volver a la versión no editada. En cualquier caso con lo que me diga soporte de paypal os lo digo. Link to comment Share on other sites More sharing options...
manujerez Posted November 27, 2014 Share Posted November 27, 2014 designerspain su cuenta PayPal es personal o business? se lo digo porque el caso que le ocurre puede ser este:http://paginaswebyseo.es/paypal-obliga-registrar-una-cuenta-para-poder-pagar/para evitar la obligación de crear cuenta, cambiándola de Personal a Business o Premier sí le debe dejar PayPal pagar con tarjeta sin la necesidad ni la obligación de crear una cuenta PayPal. Link to comment Share on other sites More sharing options...
designerspain Posted November 28, 2014 Share Posted November 28, 2014 designerspain su cuenta PayPal es personal o business? se lo digo porque el caso que le ocurre puede ser este: http://paginaswebyseo.es/paypal-obliga-registrar-una-cuenta-para-poder-pagar/ para evitar la obligación de crear cuenta, cambiándola de Personal a Business o Premier sí le debe dejar PayPal pagar con tarjeta sin la necesidad ni la obligación de crear una cuenta PayPal. Business Link to comment Share on other sites More sharing options...
marben_83 Posted December 9, 2014 Share Posted December 9, 2014 Muy buenas a todos, y de antemano gracias. Respecto al pago estandar, cuando dicen comentar, a que lineas de codigo se refieren, a todas ?? Las pego a continuacion para no equivocarme, que soy un poco novato /* 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(); } if ($customer->id && !$address->id) $ppec->logs[] = $ppec->l('Cannot create Address'); Link to comment Share on other sites More sharing options...
yeremaya Posted December 9, 2014 Share Posted December 9, 2014 Muy buenas a todos, y de antemano gracias. Respecto al pago estandar, cuando dicen comentar, a que lineas de codigo se refieren, a todas ?? Las pego a continuacion para no equivocarme, que soy un poco novato /* 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(); } if ($customer->id && !$address->id) $ppec->logs[] = $ppec->l('Cannot create Address'); Hola!, en principio solamente estas dos líneas // $address->add(); // $address->save(); 1 Link to comment Share on other sites More sharing options...
r3g1s Posted December 9, 2014 Author Share Posted December 9, 2014 /* 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(); } Link to comment Share on other sites More sharing options...
twister88888 Posted December 10, 2014 Share Posted December 10, 2014 Volviendo con este tema me encuentro con una tienda de un cliente que con la versión nueva de Paypal, le han hecho un pedido desde California y le da el siguiente error: He comprobado que los códigos ISO sean distintos, pero por lo que veo en esta ocasión viene por el código postal introducido. También tengo comentadas las líneas 207 y 212 del archivo paypent.php. PayPal response:TIMESTAMP -> 2014-12-09T01:46:48ZL_ERRORCODE0 -> 10736L_SHORTMESSAGE0 -> Shipping Address Invalid City State Postal CodeL_LONGMESSAGE0 -> A match of the Shipping Address City, State, and Postal Code failed.L_SEVERITYCODE0 -> Error Os ha pasado a alguno o sólo vendéis a la península? En el resto de ciudades de España se realiza el pago correctamente. Link to comment Share on other sites More sharing options...
Recommended Posts