De volgende stroomdiagrammen vertegenwoordigen de basisstroom die nodig is om Paystack-gesplitste betalingen te laten werken voor WC Vendors. Dit kan ook worden aangepast om elke betalingsgateway te ondersteunen die gesplitste betalingen ondersteunt.
Kijkend naar de Paystack voor WooCommerce betalingsgateway plugin, lijkt het erop dat gesplitste betalingen al worden ondersteund, maar dan voor een vaste/vooraf gedefinieerde sub-account, en geen dynamische sub-accounts ondersteunen op basis van de verkoperslijst die is opgehaald uit de momenteel verwerkte bestelling. Om WC Vendors Marketplace gesplitste betalingen met Paystack te ondersteunen, is het vereist dat de splitsing dynamisch wordt gegenereerd op basis van het aantal verkopers wiens producten zich in de momenteel verwerkte bestelling bevinden.
Om multi-split betalingen te ondersteunen, moet de Marketplace-beheerder een Paystack-account hebben en de plugin configureren met de API-sleutels, zodat sub-accounts kunnen worden aangemaakt via de Paystack API. Tijdens de onboarding van verkopers verstrekken verkopers hun afrekeningsaccountgegevens, die zullen worden gebruikt om sub-accounts te configureren en gesplitste betalingen te faciliteren.
Download het stroomdiagram als een PDF-document
Verkoper onboarding
We raden een eenvoudig onboarding-systeem aan waarmee verkopers een account kunnen aanmaken vanuit de Marketplace-instellingen door een eenvoudig formulier in te vullen met de gegevens die Paystack nodig heeft om een account aan te maken, of ze kunnen handmatig de accountgegevens invullen als ze al een account hebben bij Paystack.
Hier is een stroomdiagram dat het onboardingproces toont. Dit begint vanuit het Verkopersdashboard onder de pagina Betalingsinstellingen.

Nadat de sub-account is aangemaakt, moet de sub-accountcode voor de verkoper worden opgeslagen in het account van de huidige verkoper op de marktplaats, zodat deze kan worden gebruikt voor gesplitste betalingen. Zie de integratiehandleiding voor betalingsgateways voor details.
Voorbeeld
<?php update_user_meta( $user->ID, '_paystack_sub_account_code', 'ACCT_xxxxxxxxxxxxx' ); ?>
Klant afrekeningsstroom
Op de Marketplace Shop-pagina kan een klant elk aantal producten van elk aantal verkopers kopen. Bij het afrekenen moet de betalingsgateway-integratie de lijst met verkopers uit de aangemaakte bestelling ophalen en deze lijst gebruiken om de gesplitste betalingen te creëren op basis van het totaal voor elke verkoper in de winkelwagen en de commissie die door de marketplace-beheerder is ingesteld.

Betaling verwerken
Het verwerken van een betaling omvat het berekenen van de splitsingen op basis van de verkopersbijdragen uit de bestelling, zie het document Betalingsgateway-integratie voor details. Hieronder staat een stroomdiagram voor het verwerken van de betaling.

De gesplitste bedragen moeten dynamisch worden berekend op basis van de bestelitems, commissie-instellingen en extra winkelwagenkosten zoals belastingen of verzendkosten. Het volgende moet ook worden gecontroleerd om te bepalen wie de belasting- en verzendcommissie ontvangt.
<?php
if ( wc_string_to_bool( get_option( 'wcvendors_vendor_give_taxes' ) ) ) {
// Addd tax fees to vendor total
} else {
// Add tax total to marketplace split
}
?>
if ( wc_string_to_bool( get_option( 'wcvendors_vendor_give_shipping' ) ) ) {
// Addd shipping fees to vendor total
} else {
// Add shipping total to marketplace split
}
Om de splitsing voor elke verkoper op basis van de bestelling te maken, kunt u de verkopersschulden uit de bestelling halen en vervolgens de subrekeningcode voor elke verkoper uit de lokale database ophalen met behulp van de verkopers-ID. Zie het document betalingsgatewayintegratie ter referentie. De subrekeningcode wordt opgeslagen in het account van de verkoper tijdens de onboarding.
Voorbeeld:
public function process_split_payment( $order ) {
$vendors_due = WCV_Vendors::get_vendor_dues_from_order( $order, false );
$sub_accounts = array();
foreach ( $vendors_due as $vendor_id => $products ) {
$_vendor_account = get_user_meta( $vendor_id, '_paystack_sub_account_code', true );
$sub_accounts[] = array(
'subaccount' => $_vendor_account,
'share' => $calculated_share,
);
// Other processing.
}
$split_payments = array(
'name' => 'Percentage Split for order #' . $order->get_id(),
'type' => 'percentage',
'currency' => woocommerce_get_currency(),
'subaccounts' => $sub_accounts,
'bearer_type' => 'subaccount',
'bearer_subaccount' => 'ACCT_hdl8abxl8drhrl3',
);
$this->send_split_to_paystack( $split_payments );
// Other processing.
}
Aanvullende instellingen
Bij het maken van de gesplitste betalingen is het noodzakelijk om de instellingen van de beheerder en de commissie-instellingen te controleren op eventuele kosten die van de beheerder of van de subrekeningen kunnen worden afgetrokken. Deze omvatten verzendkosten, Paystack-kosten, belastingen en andere kosten. Deze kosten moeten correct worden toegewezen en indien nodig van elke verkoper worden afgetrokken of aan elke verkoper worden betaald.
Deze kunnen ook per transactie worden geconfigureerd en kunnen configuratie-instellingen gebruiken die door de platformeigenaar zijn ingesteld op de instellingenpagina van de plugin. En we zouden deze informatie ook aan de verkopers moeten tonen tijdens de onboarding, zodat ze weten waar ze aan beginnen en de bijbehorende kosten. Bovendien mogen deze instellingen alleen beschikbaar zijn wanneer WooCommerce + Paystack-plugin voor WooCommerce is geïnstalleerd.