Oferta SiteGround Black Friday

Cómo configurar y asignar pagos a varias cuentas de PayPal en WooCommerce

Quizás de las cosas más fácil que hacer a la hora de crear una tienda online sea configurar las pasarelas de pago, y PayPal no es una excepción.

Si vas a utilizar el PayPal estándar que viene incluido con WooCommerce solo tienes que poner tu email de PayPal y ya funcionará, y si prefieres/debes usar una cuenta de PayPal Business entonces con el plugin gratuito WooCommerce PayPal Express Checkout que se te sugiere en la instalación es conectar y la configuración prácticamente se hace sola también.

Configuración de PayPal Estándar en WooCommerce
Configuración de PayPal Exprés en WooCommerce

Pero ¿y si quieres asignar pagos a distintas cuentas de PayPal? ¿eso cómo se hace?

WooCommerce no contempla esta posibilidad por defecto, tenemos que añadirle esta funcionalidad, que podemos lograr de varias maneras, según nuestra necesidad.

Cómo asignar distintas cuentas de PayPal  por producto con código

Si la situación es que, dependiendo del producto, el pago por PayPal deba hacerse a distintas cuentas de PayPal entonces tenemos que generar un código que, según el ID del producto, se utilice una cuenta de PayPal u otra.

Sería como el de este ejemplo:

// 1. Distinto email de PayPal según el ID del producto
add_filter( 'woocommerce_paypal_args' , 'ayudawp_paypal_segun_producto', 9999, 2 );
function ayudawp_paypal_segun_producto( $paypal_args, $order ) {
foreach ( $order->get_items() as $item_id => $item ) {
// INTRODUCE AQUÍ EL ID DEL PRODUCTO
if ( 77777 == $item->get_product_id() ) {
// INTRODUCE AQUÍ EL OTRO EMAIL DE PAYPAL
$paypal_args['business'] = '[email protected]';
break;
}
}
return $paypal_args;
}
// -------------------
// 2. Evitar fallos de IPN tras cambiar el email de PayPal por ID de producto
require_once WC()->plugin_path() . '/includes/gateways/paypal/includes/class-wc-gateway-paypal-ipn-handler.php';
class WC_Gateway_Paypal_IPN_Handler_Switch extends WC_Gateway_Paypal_IPN_Handler { 
protected function validate_receiver_email( $order, $receiver_email ) {
if ( strcasecmp( trim( $receiver_email ), trim( $this->receiver_email ) ) !== 0 ) {
// INTRODUCE AQUÍ EL MISMO (OTRO) EMAIL USADO ARRIBA
if ( $receiver_email != '[email protected]' ) {
WC_Gateway_Paypal::log( "IPN Response is for another account: {$receiver_email}. Your email is {$this->receiver_email}" );
$order->update_status( 'on-hold', sprintf( __( 'Validation error: PayPal IPN response from a different email address (%s).', 'woocommerce' ), $receiver_email ) );
exit;
}
}
}
}
new WC_Gateway_Paypal_IPN_Handler_Switch();

Solo tienes que cambiar el ID del producto del ejemplo (77777) y el email adicional de PayPal ([email protected]).

Descargo de responsabilidad: el código de arriba de ejemplo PODRÍA PROVOCAR efectos no deseados, úsalo bajo tu responsabilidad. Por ejemplo, puede interferir con la gestión de reembolsos de PayPal (es mejor que elimines las claves API de PayPal de WooCommerce, ya que los reembolsos ahora deberán hacerse manualmente desde cada cuenta de PayPal) o generar otros errores

Nota: el código de arriba contempla únicamente el cambio de cuenta de PayPal para un ID de producto, así que es posible que tengas que impedir que se puedan añadir más de 1 producto al carrito, adicionalmente. Esto lo puedes hacer fácilmente en la ficha de inventario de los datos de los productos.

Cómo repartir ingresos repartidos en varias cuentas de PayPal

Otra posible situación es que lo que tengas que hacer es repartir ingresos entre varias cuentas de PayPal

En este caso el plugin PayPal Payouts for WooCommerce es la solución ideal.

Con este plugin puedes:

  • Pagar a vendedores o afiliados de manera automática con un solo clic, a cada uno a su cuenta de  PayPal.
  • Pagar a todos con un solo clic con las acciones por lotes.
  • Establecer el porcentaje personalizado para cada cuenta de PayPal y dividir los pagos automáticamente tras finalizar la compra.

Además, el plugin se integra a la perfección con el plugin de afiliación y multi vendedor de Yith, para activar pagos automáticos por PayPal a distintas cuentas.

De este modo puedes plantear incluso una tienda multivendedor, o marketplace, en la que los vendedores individuales y tú tenéis una comisión cada uno y los pagos configurados a distintas cuentas de PayPal.

Cómo asignar varias cuentas de PayPal según el vendedor

El paso siguiente sería crear directamente  una tienda multivendedor, un marketplace, donde cada vendedor ofrece sus productos, y los cobra en base a una comisión o con sus propias pasarelas de pago y el que recibe la comisión eres tú.

Para esto mi plugin de cabecera es WooCommerce MultiVendor / MarketPlace.

Entre sus muchos ajustes y configuraciones para crear tu propio marketplace, tu propio Amazon, tienes la posibilidad de asignar distintas pasarelas de pago a cada vendedor, así como las comisiones.


Como habrás podido comprobar hay varias posibilidades a la hora de asignar distintas cuentas de PayPal en WooCommerce, solo depende de cómo quieras usarlas.

¿De cuánta utilidad te ha parecido este contenido?

¡Haz clic en los emoticonos para valorarlo!

Promedio de puntuación 5 / 5. Total de votos: 1

Hasta ahora ¡no hay votos!. Sé el primero en valorar este contenido.

Ya que has encontrado útil este contenido...

¡Sígueme en las redes sociales!

¡Siento que este contenido no te haya sido útil!

¡Ayúdame a mejorar este contenido!

Por favor, dime, ¿cómo puedo mejorarlo?

¿Te gustó este artículo? ¡Ni te imaginas lo que te estás perdiendo en YouTube!

Sobre el autor

5 comentarios en “Cómo configurar y asignar pagos a varias cuentas de PayPal en WooCommerce”

  1. Tomás de Aquino

    Hola muy buenas Fernando gran post. y muy útil. pero tengo una duda, eso con Stripe se puede hacer? que manera habría.

  2. Hola Fernando,
    Lo primero de todo, felicitarte por el blog y agradecerte la labor que realizas.
    Tengo una duda: ¿se puede hacer al revés, es decir, asignar a una misma cuenta de PayPal 2 o más woocommerce?

    Gracias de antemano. Un saludo

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Información base sobre privacidad:
- Responsable: Fernando Tellado ([email protected])
- Fin del tratamiento: Moderación de comentarios para evitar spam
- Legitimación: Tu consentimiento
- Comunicación de los datos: No se comunicarán los datos a terceros salvo por obligación legal
- Derechos: Acceso, rectificación, portabilidad, olvido

 

Scroll al inicio