Muchos de los emprendedores que deciden montar una tienda online, deciden no contratar con su banco una pasarela de pago relacionada con las tarjetas de crédito.
Para ello recurren a PayPal, que aunque sus recargos por transacción no son excesivamamente económicas, por decirlo de alguna manera, no cobran un coste fijo mensualmente lleven a cabo pagos o no.
Muchos de los emprendedores que deciden montar una tienda online, deciden no contratar con su banco una pasarela de pago relacionada con las tarjetas de crédito.
Para ello recurren a PayPal, que aunque sus recargos por transacción no son excesivamente económicas, por decirlo de alguna manera, no cobran un coste fijo mensualmente lleven a cabo pagos o no.
Para ello recurren a PayPal, que aunque sus recargos por transacción no son excesivamente económicas, por decirlo de alguna manera, no cobran un coste fijo mensualmente lleven a cabo pagos o no.
Virtuemart 2.x nos permite fácilmente crear una forma de pago a través de Paypal para que los clientes puedan pagar con tarjeta de crédito.
En este tutorial no vamos a explicar cómo hacer esto ni como crear una cuenta Paypal para vendedores, etc. Si alguno tenéis algún problema para implementarlo en vuestra tienda online, por favor no dudéis en preguntarlo en el foro y os intentaremos ayudar.
En este tutorial lo que vamos a intentar explicar es como, tras crear una forma de pago para tarjeta de crédito a través de Paypal, conseguir que el plugin de Paypal incorparado en Virtuemart nos redirija a la página de pago con tarjeta de crédito y no a la página de pagar a través de una cuenta Paypal.
Si utilizamos el plugin que acompaña a Virtuemart 2.x sin más, cuando un cliente termina el proceso de pedido y accede al pago con tarjeta a través del servidor seguro de paypal, Virtuemart lo redirigirá a una página como parecida a esta:
Para que el cliente pueda efectuar su pago, deberá hacer clic sobre ¿No dispone de una cuenta PayPal?, y la pantalla cambiará para mostrar algo parecido a:
Este es el modo por defecto en el que trabaja plugin.
Al hacerlo así, puede darse el caso de que el cliente al no ver claramente donde introducir su datos referentes a su tarjeta de crédito, abandone la comprar y por tanto el pedido no termine de llevarse a cabo.
Todo este modo de trabajo del plugin es debido a que Virtuemart en el momento en el que el cliente o usuario confirma el pedido y entra en comunicación con Paypal, envía una serie de datos o parámetros a Paypal, tales como el número de pedido, importe a cobrar, Cantidad, etc… pero también podría enviar como se debe presentar la página de Paypal al cliente.
Este parámetro no lo envía con lo que Paypal por defecto muestra la pantalla de Login.
Y después de tanta teoría, ¿Cómo conseguimos que muestre la pantalla de la tarjeta de crédito por defecto?, pues bien, vamos a ponernos manos a la obra que el proceso es bien sencillo.
Lo que debemos hacer es modificar el fichero paypal.php.
Este fichero se encuentra dentro de nuestra instalación de Joomla, en ../plugins/vmpayment/paypal/paypal.php.
Antes de realizar ningún cambio y como es habitual, debemos hacer una copia de seguridad de este archivo.
Una vez hecha la copia, vamos a editar el fichero paypal.php y nos dirigimos aproximadamente a la línea 200 y nos encontraremos algo como:
"address_override" => isset($method->address_override) ? $method->address_override : 0, // 0 ?? Paypal does not allow your country of residence to ship to the country you wish to"first_name" => $address->first_name,"last_name" => $address->last_name,"address1" => $address->address_1,"zip" => $address->zip,"city" => $address->city,"state" => isset($address->virtuemart_state_id) ? ShopFunctions::getStateByID ($address->virtuemart_state_id) : '',"country" => ShopFunctions::getCountryByID ($address->virtuemart_country_id, 'country_2_code'),"email" => $order['details']['BT']->email,"night_phone_b" => $address->phone_1,"return" => JROUTE::_ (JURI::root () . 'index.php?option=com_virtuemart&view=pluginresponse&task=pluginresponsereceived&on=' . $order['details']['BT']->order_number . '&pm=' . $order['details']['BT']->virtuemart_paymentmethod_id . '&Itemid=' . JRequest::getInt ('Itemid')),
Lo que debemos añadir para que PayPal muestre por defecto el modo de pago por tarjeta de crédito es el parámetro:
"landing_page" => "billing",
Con lo que el fichero quedará una vez modificado quedará de este modo:
"address_override" => isset($method->address_override) ? $method->address_override : 0, // 0 ?? Paypal does not allow your country of residence to ship to the country you wish to"first_name" => $address->first_name,"last_name" => $address->last_name,"address1" => $address->address_1,"zip" => $address->zip,"city" => $address->city,"state" => isset($address->virtuemart_state_id) ? ShopFunctions::getStateByID ($address->virtuemart_state_id) : '',"country" => ShopFunctions::getCountryByID ($address->virtuemart_country_id, 'country_2_code'),"email" => $order['details']['BT']->email,"night_phone_b" => $address->phone_1,"landing_page" => "billing","return" => JROUTE::_ (JURI::root () . 'index.php?option=com_virtuemart&view=pluginresponse&task=pluginresponsereceived&on=' . $order['details']['BT']->order_number . '&pm=' . $order['details']['BT']->virtuemart_paymentmethod_id . '&Itemid=' . JRequest::getInt ('Itemid')),
Ahora solo queda guardar el fichero para que almacene los cambiaos realizado y comprobar que cuando se confirma un pedido en el que la forma de pago seleccionada sea “tarjeta de crédito”, Virtuemart 2.x nos conducirá a PayPal mostrando el pago con tarjeta de forma automática como opción preferida.
Antes de finalizar este tutorial, queremos agradecer la colaboración de Imawamba Juegos (tienda online de juegos de mesa en la que hemos participado de forma activa recientemente, y hemos puesto en práctica este método de pago), ya que nos ha permitido llevar a cabo este tutorial.
Antes de finalizar este tutorial, queremos agradecer la colaboración de Imawamba Juegos (tienda online de juegos de mesa en la que hemos participado de forma activa recientemente, y hemos puesto en práctica este método de pago), ya que nos ha permitido llevar a cabo este tutorial.