Prestashop: Posar una comissió al mòdul de pagament amb PayPal.

Actualitzat Abril 2016.

A la nostra botiga online desenvolupada amb Prestashop podem establir diversos mètodes de pagament. Entre ells, PayPal. Perquè es pugui pagar a través d’aquesta plataforma hem d’instal·lar el mòdul de pagament corresponent.

PayPal ens cobrarà una comissió de, aproximadament, un 3,5% per cada operació. El Prestashopproblema és que, si volem cobrar el recàrrec al client en el moment d’efectuar el pagament, el mòdul de PayPal per Prestashop no ens dóna aquesta opció. Hem de modificar el codi en PHP del mòdul per canviar la forma de calcular el total i afegir aquesta comissió com una despesa més de manipulació i transport.

Prestashop 1.5 i 1.6

Aquí teniu el mòdul de pagament de PayPal amb recàrrec: paypal-comision.zip

Aquest mòdul inclou un canvi: he modificat el codi de l’arxiu paypal.php per afegir la variable id_carrier. D’aquesta manera, en cas d’utilitzar diversos transportistes a la nostra botiga en línia, s’utilitzarà en els càlculs el transportista que s’hagi seleccionat durant el procés de compra.

Aquest mòdul és una aportació de la Comunitat Prestashop. En el fòrum podeu trobar comentaris i dubtes resolts sobre el tema.

També podeu deixar els vostres comentaris i preguntes al final d’aquest post.

Prestashop 1.4

Aquí teniu els passos per modificar el mòdul de pagament de PayPal:

1 – Fer una còpia de seguretat dels arxius que modificarem. En el cas de Prestashop 1.4 estan a la carpeta:

modules/paypal/payment

2 – Canviar el total a cobrar en l’arxiu submit.php per afegir la comissió:

Després de la línia:

include(_PS_ROOT_DIR_.’/header.php’);

Afegir:

//COMISSIÓ
$comisionP = 1.03; //para una comisión de un 3%
$totalP = $cart->getOrderTotal(true, Cart::BOTH); //recuperamos el total del carrito
$totalP = $totalP * $comisionP; //este será el total con comisión

Just a sota, on s’assignen els valors a la variable $smarty, substituir la línia:

‘total’ => $cart->getOrderTotal(true, Cart::BOTH),

Per aquesta altra:

‘total’ => $totalP,

3 – Canviar en paypalpayment.php el total a cobrar i les despeses d’enviament per afegir la comissió i que aparegui com una despesa de manipulació i transport en el desglossament de la compra:

Després de la línia:

$paymentAmount = (float)($cart->getOrderTotal());

Afegir:

//COMISSIÓ
$comision = $paymentAmount * 0.03; //calculo la comisión
$paymentAmount = $paymentAmount + $comision; //la sumo al total

Després de la línia:

$shipping = $this->PayPalRound($cart->getOrderShippingCost($cart->id_carrier, false));

Afegir:

//enviament + comissió:
$shipping = $shipping + $comision;

4 – Canviar el text que apareix a la pàgina de confirmació per avisar que se sumarà una comissió al total:

A l’arxiu modules/paypal/es.php (o l’arxiu de l’idioma que correspongui), buscar la línia on posa “Ha triat pagar amb PayPal.” i afegir un text al costat per explicar que hi ha una comissió.

5 – Pujar els arxius modificats al servidor i llest. : )

Hi ha 32 Comentaris

  1. Cristina escrigué:

    Hola! tengo la version 1.5 de prestashop y en el módulo de paypal, los dos archivos submit.php que he encontrado no tienen la linea modificada…
    para esta versión, cómo podemos hacerlo?
    MiL GRACIAS!!!!

  2. Piraguismo Ebro escrigué:

    Prestashop: Poner una comisión al modulo de pago con PayPal. | oh!disea · diseño creativo , es interesante, desde que os recibo no puedo parar de mirar todas vuestras sugerencias y me alegra cuando recibo uno más, sois lo mejor en español, me encata vuestra presentación y el curre que hay detrás. Un beso y abrazo,GRACIAS POR VUESTRO TRABAJO, nos alegrais la vida.

  3. Jesús escrigué:

    No se si influirá que tenga activado el pago exprés, pero a mi no me cambia el precio y tampoco sale el mensaje de la comisión. Tengo Prestashop 1.4.7.3

  4. Sara escrigué:

    Hola! Gracias por la explicación. Lo he intentado pero la verdad es que no ha surtido efecto. Estoy usando prestashop 1.5, así que imagino que el módulo de paypal es diferente y se debe a eso… las líneas que hay que buscar no son las mismas y no logro saber dónde tengo que modificar las cosas.

  5. Martín Abril escrigué:

    Hola, tengo la version 1.5.4.1 de prestashop y la 3.5.5 del módulo de paypal y no existe la carpeta payment, encuentro 2 archivos llamados submit.php en la carpeta controllers y integral_evolution pero no tienen las línea que tu mencionas (include(_PS_ROOT_DIR_.’/header.php’);)

    Un saludo

  6. Amparo García escrigué:

    Hola,

    Estoy buscando la carpeta payment dentro del modulo de PayPal
    y no esta alguna idea para la ultima versión
    Uso la versión de PayPal :3.5.5

    Muchas gracias

  7. Pitufo escrigué:

    Tengo la versión 3.5.5 de PayPal y no se encuentra la carpeta /payment, como puedo cambiar la comisión en esta versión?

    Gracias!

  8. Roberto escrigué:

    Buenas,

    Tras hacer los cambios, he realizado una prueba y en la página submit.php me indica “- El importe total de su pedido es de 0,00 € (TTC)”, como puede hacer para que aparezca el valor correcto¿?

    Debo decir que a continuación en la página donde te dirige paypal ya aparece el total y el gasto de manipulación y trasporte correctamente.

    Yo he probado a cambiar en el archivo submit.php la linea:
    $totalP = $cart->getOrderTotal(true, Cart::BOTH); //recuperamos el total del carrito
    por:
    $totalP = $cart->getOrderTotal(true, PayPal::BOTH); //recuperamos el total del carrito

    Pero no hubo cambios.

    Gracias por el aporte y a la espera de una respuesta.

  9. Roberto escrigué:

    Tras hacer los cambios, todo correcto.

    Pero a la hora de comprobar en payapal la cantidad cobrada sigue siendo la misma sin el porcentaje indicado.

    Alguna pista u opción a modificar en paypal.

  10. Rafael escrigué:

    Hola muy buenas, he aplicado el codigo tal y como indicas en los diferentes archivos, pero sigue sin calcularme la comisión y sin aparecer el comentario. Hay que hacer algo más una vez modificados y subidos via FTP.
    Muchas gracias.

  11. vicent escrigué:

    Hola Rafael,
    ¿Qué versión de Prestashop utilizas? Sé que funciona con la 1.4, pero no estoy seguro de que funcione en la 1.5.
    Si has cambiado el mensaje en modules/paypal/es.php, al menos esto debería aparecer. ¿Puede que estés modificando los archivos de otro módulo de Paypal distinto al que está activo?
    Un saludo!

  12. Cristhian escrigué:

    Hola tengo la version 1.6 tendras en modulo paypal con recargo para descargarlo

  13. vicent escrigué:

    Hola Cristhian,

    Aquí tienes el módulo con recargo para Prestashop 1.5.2 :

    http://www.prestashop.com/forums/topic/210740-modulo-paypal-con-recargo-152/

    Puedes probarlo con la versión 1.6, a ver si funciona corectamente. Ya nos dices qué tal ha ido. ¡Gracias!

  14. ANGEL escrigué:

    Hola, tras bajar y hacer las modificaciones en los 3 archivos indicados, me sale este mensaje al subir cualquiera de los 3 por FTP:
    Respuesta: 550 es.php: Permission denied
    Error: Error crítico de transferencia de fichero
    ¿Es posible que el módulo PayPal este codificado y no acepta ninguna modificación?
    Gracias, un saludo.

  15. vicent escrigué:

    Hola Ángel,

    Ese error es debido a los permiosos que tienen los ficheros en el servidor. Seguramente, has instalado el módulo de PayPal desde el Backend de Prestashop. En este caso, los archivos se instalan con permisos para el usuario Apache del servidor y tu cuenta de usuario FTP no tiene permisos para modificarlos o reescribirlos.

    Tienes que cambiar los permisos de los archivos que quieres reescribir desde el cliente FTP que utilizas (Filezilla o similar). Puedes hacerlo con el botón derecho del ratón sobre el archivo que quieres cambiar. Pones los permisos CHMOD a 777 y después podrás subir los archivos modificados.

    Es posible que el sistema no te deje cambiar esos permisos por FTP. En este caso, tendrás que entrar al panel de control del hosting, buscar una utilidad para la gestión de los archivos y borrar los archivos antiguos desde allí. Una vez borrados, podrás subir los archivos nuevos.

    Avísame si tienes cualquier duda. Un saludo!

  16. ANGEL escrigué:

    Muchas gracias por su repuesta, efectivamente lo hice y cambié los permisos a 777 y no había manera de modificar, borrar o sustituir, de hecho acabo de intentar también borrar es.php desde el panel y tampoco, me sale el siguiente mensaje:
    No se pudo eliminar /httpdocs/modules/paypal/es.php: filemng: Error occurred during /bin/rm command.
    Gracias, un saludo.

  17. antoniio escrigué:

    hola, gracias por tus aportes, no tienes ya uno modificado que puedas compartir. gracias..

  18. vicent escrigué:

    Hola Antonio,
    La versión del módulo que modifiqué en su día es para Prestashop 1.4. Si quieres el módulo con esa función ya incorporada para Prestashop 1.6, aquí tienes uno:
    http://www.alabazweb.com/es/253-modulo-pago-paypal-con-recargo-para-prestashop-16.html

    Es de pago, pero el precio es bastante razonable y tienen un buen soporte técnico. ¡Un saludo!

  19. Mario_Texmon escrigué:

    En primer lugar muchas gracias por el módulo, Vicent.

    En segundo, resulta que el porcentaje no me lo aplica correctamente. Uso Prestashop 1.6.1 y parece funcionar todo bien, pero he añadido un 3,4 y un 0,35 en los valores del módulo (3,4% de porcentaje y 0,35 céntimos fijos por operación) y no sé dónde se pierde, pero la realidad es que no aplica los porcentajes debidamente.

    En primera instancia pensé que los números no cuadran porque para el cálculo de la comisión no tenía en cuenta el transporte, pero no es así. ¿Alguna idea?

    Gracias,

  20. Mario_Texmon escrigué:

    Vale, veo que el problema está en que no añade correctamente el gasto de envío que yo le marco en la tienda.

    Es decir, el producto vale 745 € y el envío 40 €. La comisión del 3,4% + 0.35 € sale a 27,04 € y el programa lo marca bien, el problema es que en el desglose de costes aparece:

    745 € (Coste del producto)

    27,04 € (Comisión correcta de la suma de “coste de producto + transporte”)

    33,06 € (Dice ser el coste de “Envío y manipulación”)

    Osease, los 40 € de envío mios desaparecen y se cambia por esos 33,06 € que no sé de dónde salen

  21. Vicent Badia escrigué:

    Hola Mario,

    Creo que esos 33,06€ son los 40€ del envío, pero sin el IVA:

    33,06 * 1,21 = 40€

    Revisa la configuración de los gastos de envío en Transporte > Transportistas. ¿Has seleccionado el tipo de IVA a incluir?

  22. israelpaya escrigué:

    Hola,

    He seguido los pasos y modificado los 3 archivos cuidadosamente, pero sigue sin hacer nada. Ni siquiera aparece si quiera el comentario. Solo tengo un módulo Paypal (una sola carpeta paypal), con lo que no puedo estar modificando los archivos de otra carpeta. Utilizo la versión de Prestashop 1.4.8.2. ¿Alguna idea, por favor?

  23. Vicent Badia escrigué:

    Hola Israel,

    Si has modificado el archivo modules/paypal/es.php , al menos el texto que has puesto debería aparecer.
    Comprueba por FTP la carpeta del servidor, para ver las fechas de modificación de los archivos y asegurarte de que se han modificado.
    ¿Aparece algún mensaje de error? ¿El módulo funciona normalmente?
    Si no aparece ningún error, puedes poner la tienda en modo Debug:

    http://www.rubenortiz.es/2012/01/05/prestashop-habilitar-modo-debug/

    Así aparecerán los errores y alertas que puedan haber en la aplicación.

    Dinos si aparece algún error o si era un problema de permisos en el servidor. Un saludo!

  24. israelpaya escrigué:

    Hola Vicent,
    Las modificaciones las estoy haciendo en local. Me he asegurado de que están hechas y he revisado el código. También he activado el Debug, pero no da ningún error. De hecho, la aplicación funciona correctamente, pero no hace el cálculo del recargo de Paypal. Funciona todo como si no se hubiera hecho ningún cambio.

  25. Vicent Badia escrigué:

    Uff… sí que es raro!
    Prueba alguna de estas cosas si no lo has hecho ya:

    – Ve a la configuración de Prestashop y vacía la caché.
    – Activa la opción de forzar la compilación.
    – Haz un backup de los archvos del módulo de Paypal y después cárgate la carpeta. Prueba a hacer el pago con Paypal a ver qué pasa. Ya sé que lo habrás mirado, pero es posible que el sistema esté utilizando otro módulo distinto al que tú estás modificando.
    – Si la carpeta que estás modificando es la correcta, prueba a cambiar los textos que aparecen en pantalla, para ver si esos cambios sí que se realizan en el módulo.

    Suerte, ya me cuentas.

  26. israelpaya escrigué:

    Hola Vicent,
    He vaciado la caché. He activado la opción forzar compilación. He eliminado la carpeta del módulo Paypal y al efectuar la compra no aparecía la forma de pago Paypal … hasta ahí todo correcto. He probado a cambiar los textos que aparecen en pantalla y no se cambian y sigue sin aplicar el cargo. Esto es muy raro. Ya no se lo que hacer.

  27. daniel escrigué:

    Hola, muy bueno tu sitio.

    Necesito ayuda con un tema de Paypal y no sé cómo seguir, espero me puedas ayudar. Estoy armando una tienda para Uruguay en Prestashop y no logro hacer que el bloque de paypal se muestre SIEMPRE en el checkout (aunque todos los productos estén pesos uruguayos) ?

    Quiero vender en Pesos Uruguayos y que el bloque de Paypal aparezca en el checkout y por supuesto haga la conversión a USD.

    Tengo PS1.6 y estoy probando con Paypal Europa. Actualmente ya he verificado que hace la conversión aún sin aparecer en el checkout pero obviamente necesito que para los clientes APAREZCA.

    Muchas gracias y saludos desde Uruguay.

    • Herman escrigué:

      Daniel, veo que utilizas Prestashop en Uruguay y al parecer lograste instalar un modulo PayPal.
      He buscado información y no he podido resolver ese paso. ¿Cual es el módulo PAYPAL que utilizas que funciona para nuestro país?
      Se agradece tu experiencia.
      Muchas gracias
      Herman

  28. Vicent Badia escrigué:

    Hola Daniel,

    Los distintos módulos de pago que tienes instalados se pueden configurar para que aparezcan o no según la moneda elegida en el frontend. Yo diría que hay un problema con esas restricciones. Dale un vistazo a esto:

    restricciones moneda modulos de pago Prestashop

    ¡Un saludo!

  29. soporte666 escrigué:

    buen dia, estoy en mexico, segun paypal esta prohibido cobrar comisiones por el uso de su servicio, alguien ha tenido problemas con paypal por usar modulos asi?

  30. lorena escrigué:

    hola, uso prestashop 1.6 alguien puede decirme si esto aun funciona?

Respon a antoniio Cancel·la les respostes

L'adreça electrònica no es publicarà Els camps necessaris estan marcats amb *

Partner 480interactive
¡Compartelo!
  Newsletter
NEWSLETTER

Suscríbete a nuestra Newsletter para recibir en tu e-mail las últimas noticias sobre Diseño y Marketing Online.

* no compartiremos tus datos.
×