Die folgenden Flussdiagramme stellen den grundlegenden Ablauf dar, der erforderlich ist, um Paystack-Split-Zahlungen für WC Vendors funktionsfähig zu machen. Dies kann auch angepasst werden, um jedes Zahlungs-Gateway zu unterstützen, das Split-Zahlungen unterstützt.
Wenn man sich das Paystack for WooCommerce Payment Gateway Plugin ansieht, scheint es, dass Split-Zahlungen bereits unterstützt werden, aber für ein festes/vordefiniertes Unterkonto sind und keine dynamischen Unterkonten basierend auf der Anbieterliste unterstützen, die aus der aktuell verarbeiteten Bestellung abgerufen wird. Damit WC Vendors Marketplace Split-Zahlungen mit Paystack unterstützen kann, ist es erforderlich, dass die Aufteilung dynamisch basierend auf der Anzahl der Anbieter generiert wird, deren Produkte sich in der aktuell verarbeiteten Bestellung befinden.
Um Multi-Split-Zahlungen zu unterstützen, muss der Marketplace-Administrator ein Paystack-Konto haben und das Plugin mit den API-Schlüsseln konfigurieren, damit Unterkonten über die Paystack-API erstellt werden können. Während des Anbieter-Onboardings geben die Anbieter ihre Abrechnungskontodetails an, die zur Konfiguration von Unterkonten und zur Erleichterung von Split-Zahlungen verwendet werden.
Laden Sie das Flussdiagramm als PDF-Dokument herunter
Anbieter-Onboarding
Wir empfehlen ein einfaches Onboarding-System, das es Anbietern ermöglicht, ein Konto über die Marketplace-Einstellungen zu erstellen, indem sie ein einfaches Formular mit den von Paystack benötigten Details ausfüllen, um ein Konto zu erstellen, oder sie können die Kontodetails manuell ausfüllen, wenn sie bereits ein Konto bei Paystack haben.
Hier ist ein Flussdiagramm, das den Onboarding-Prozess zeigt. Dieser beginnt im Anbieter-Dashboard unter der Seite Zahlungseinstellungen.

Nachdem das Unterkonto erstellt wurde, muss der Unterkonto-Code für den Anbieter im aktuellen Anbieter-Konto auf dem Marktplatz gespeichert werden, damit er für Split-Zahlungen verwendet werden kann. Details finden Sie im Leitfaden zur Zahlungs-Gateway-Integration.
Beispiel
<?php update_user_meta( $user->ID, '_paystack_sub_account_code', 'ACCT_xxxxxxxxxxxxx' ); ?>
Kunden-Checkout-Ablauf
Auf der Shop-Seite des Marktplatzes kann ein Kunde eine beliebige Anzahl von Produkten von einer beliebigen Anzahl von Anbietern kaufen. Beim Auschecken muss die Zahlungs-Gateway-Integration die Liste der Anbieter aus der erstellten Bestellung abrufen und diese Liste verwenden, um die Split-Zahlungen basierend auf dem Gesamtbetrag für jeden Anbieter im Warenkorb und der vom Marktplatz-Administrator festgelegten Provision zu erstellen.

Zahlungsverarbeitung
Die Verarbeitung einer Zahlung beinhaltet die Berechnung der Aufteilungen basierend auf den Anbieteranteilen aus der Bestellung. Details finden Sie im Dokument zur Zahlungs-Gateway-Integration. Unten sehen Sie ein Flussdiagramm zur Zahlungsverarbeitung.

Die aufgeteilten Beträge müssen dynamisch auf der Grundlage der Bestellpositionen, Provisionseinstellungen und zusätzlicher Warenkorbgebühren wie Steuern oder Versandkosten berechnet werden. Folgendes muss ebenfalls überprüft werden, um festzustellen, wer die Steuer- und Versandprovision erhält.
<?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
}
Um die Aufteilung für jeden Anbieter auf der Grundlage der Bestellung zu erstellen, können Sie die Anbieterbeiträge aus der Bestellung abrufen und dann den Unterkonto-Code für jeden Anbieter aus der lokalen Datenbank mithilfe der Anbieter-ID abrufen. Weitere Informationen finden Sie im Dokument zur Zahlungsgateway-Integration. Der Unterkonto-Code wird während des Onboardings im Konto des Anbieters gespeichert.
Beispiel:
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.
}
Zusätzliche Einstellungen
Bei der Erstellung der aufgeteilten Zahlungen ist es notwendig, die Einstellungen des Administrators und die Provisionssätze auf Gebühren zu prüfen, die vom Administrator oder von den Unterkonten abgezogen werden können. Dazu gehören Versandkosten, Paystack-Gebühren, Steuern und andere Gebühren. Diese Gebühren müssen korrekt zugewiesen und gegebenenfalls von jedem Anbieter abgezogen oder an ihn gezahlt werden.
Diese können auch pro Transaktion konfiguriert werden und die von den Plattformbesitzern auf der Setup-Seite des Plugins festgelegten Konfigurationseinstellungen verwenden. Außerdem müssten wir diese Informationen den Anbietern während des Onboardings anzeigen, damit sie wissen, worauf sie sich einlassen und welche Gebühren damit verbunden sind. Diese Einstellungen sollten auch nur verfügbar sein, wenn WooCommerce + Paystack-Plugin für WooCommerce installiert wurde.