eduardweb.
Payments (Stripe, PayPal, Netopia)Avansat#woocommerce#stripe#php#stripe-connect#marketplace

Split payments în WooCommerce cu Stripe Connect: De la teorie la coșmarul din producție

De Ioana Marinescu, 16 iun. 2026 · 15 vizualizări · 3 like-uri

Postat 16 iun. 2026
php
add_filter('woocommerce_stripe_payment_intent_args', 'custom_stripe_split_payment_args', 10, 2);

function custom_stripe_split_payment_args($args, $order) {
    // Calculăm comisionul platformei (ex: 15%)
    $order_total = $order->get_total();
    $application_fee = $order_total * 0.15;
    
    // ID-ul contului Stripe Connect al vendorului (salvat anterior în usermeta sau ordermeta)
    $vendor_stripe_account_id = get_post_meta($order->get_id(), '_vendor_stripe_account_id', true);
    
    if ($vendor_stripe_account_id) {
        $args['transfer_data'] = [
            'destination' => $vendor_stripe_account_id,
        ];
        // Suma trimisă este în cenți, Stripe oprește automat fee-ul aplicat
        $args['application_fee_amount'] = round($application_fee * 100);
    }
    
    return $args;
}

Dacă ai de construit un marketplace în WooCommerce și vrei să împarți banii automat între platformă și vânzători, Stripe Connect este singura opțiune cu adevărat viabilă. Am trecut prin asta recent la un proiect cu 120 de producători locali și vă zic direct: sună simplu în documentație, dar devine rapid un labirint tehnic și legislativ.

Iată ce am învățat din implementarea asta, ca să nu vă loviți de aceleași ziduri.

Standard vs. Express vs. Custom: Ce alegi?

Când începi cu Stripe Connect, prima decizie e tipul de cont pentru sub-merchants.

Am încercat inițial varianta Standard. Pare ideală pentru că Stripe se ocupă de tot (KYC, suport, login), dar UX-ul e groaznic pentru vânzătorii ne-tehnici. Trebuie să-și facă ei cont Stripe separat, să-l lege de platforma ta, e complicat.

Pentru proiectul menționat, am mers pe Express. Vânzătorii au un dashboard minimalist oferit de Stripe, iar noi controlăm fluxul de onboarding prin API. Dezavantajul? Te costă 2 dolari pe lună pentru fiecare cont activ plus un procent mic la payout. Pentru noi, costul ăsta a meritat economia de timp și suport tehnic.

Cum faci split-ul efectiv în WooCommerce

Dacă folosești plugin-uri prefabricate gen Dokan sau WCFM, ele au integrări integrate de Stripe Connect. Dar ce faci când clientul vrea un workflow custom? De exemplu, comisioane dinamice în funcție de categoria de produs sau volumul vânzărilor din luna precedentă.

În cazul ăsta, trebuie să scrii cod. Folosim hook-ul woocommerce_stripe_payment_intent_args pentru a intercepta crearea Payment Intent-ului și a adăuga parametrii de transfer.

Ideea e simplă: încasăm banii pe platformă (Direct Charge sau Destination Charge), calculăm comisionul nostru, iar restul pleacă direct către contul Express al vendorului.

Coșmarul de care nu vorbește nimeni: Retururile

Toate bune și frumoase până când un client cere banii înapoi. Aici apare adevărata problemă de business și tehnică.

Dacă ai făcut deja payout-ul către vendor și vrei să faci refund, de unde vin banii? Dacă îi tragi din contul platformei, riști să rămâi pe minus dacă vendorul și-a retras deja fondurile.

Stripe îți permite să faci refund cu parametrul reverse_transfer => true. Asta înseamnă că Stripe va încerca să recupereze banii din contul Express al vendorului. Dar atenție: dacă vendorul are balanța pe zero, contul lui va trece pe minus, iar tu, ca platformă, ești garantul legal în fața Stripe. Dacă vendorul fuge cu banii, tu plătești gaura.

Trade-off-ul sincer

Stripe Connect Express merge brici pentru split instant la nivel de tranzacție, dar te expune la riscuri financiare dacă nu ai un contract legal solid cu vendorii tăi. Pentru proiecte mici, uneori e mult mai sigur să încasezi totul în contul tău și să faci plăți manuale/automate prin SEPA o dată pe lună, chiar dacă pierzi avantajul automatizării în timp real.

Voi cum ați gestionat problema asta? Ați mers pe split instant sau pe modelul clasic cu reconciliere la sfârșit de lună?

Răspunsuri 0

Se încarcă răspunsurile…

Loghează-te pentru a răspunde

Doar membrii comunității pot lăsa comentarii.