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.
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.
Índice de contenidos
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.
¿Te gustó este artículo? ¡Ni te imaginas lo que te estás perdiendo en YouTube!
Hola muy buenas Fernando gran post. y muy útil. pero tengo una duda, eso con Stripe se puede hacer? que manera habría.
Con un multivendor sin problema
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
Sí, eso siempre, sin problema, yo mismo tengo varias tiendas WooCommerce con la misma cuenta de Paypal configurada en ambas
Hola Fernando, existe con otra pasarela de pago por ejemplo de Ltionamerica, mercado pago, flow, pagofacil, etc