Les organigrammes suivants représentent le flux de base requis pour faire fonctionner les paiements fractionnés Paystack pour WC Vendors. Ceci peut également être adapté pour prendre en charge toute passerelle de paiement qui prend en charge les paiements fractionnés.
En regardant le plugin de passerelle de paiement Paystack pour WooCommerce, il semble que les paiements fractionnés soient déjà pris en charge mais qu'ils soient pour un sous-compte fixe/prédéfini, et ne prennent pas en charge les sous-comptes dynamiques basés sur la liste des vendeurs récupérée de la commande en cours de traitement. Pour que WC Vendors Marketplace prenne en charge les paiements fractionnés avec Paystack, il est nécessaire que la division soit générée dynamiquement en fonction du nombre de vendeurs dont les produits figurent sur la commande en cours de traitement.
Afin de prendre en charge les paiements multi-fractionnés, l'administrateur de la Marketplace doit disposer d'un compte Paystack et configurer le plugin avec les clés API afin que les sous-comptes puissent être créés via l'API Paystack. Lors de l'intégration des vendeurs, ceux-ci fourniront les détails de leur compte de règlement qui seront utilisés pour configurer les sous-comptes et faciliter les paiements fractionnés.
Télécharger l'organigramme en tant que document PDF
Intégration des fournisseurs
Nous recommandons un système d'intégration simple qui permettra aux vendeurs de créer un compte à partir des paramètres de la Marketplace en remplissant un formulaire simple avec les détails requis par Paystack pour créer un compte, ou ils peuvent remplir manuellement les détails du compte s'ils ont déjà un compte avec Paystack.
Voici un organigramme montrant le processus d'intégration. Cela commence par le Tableau de bord du vendeur sous la page des paramètres de paiement.

Une fois le sous-compte créé, le code du sous-compte pour le vendeur doit être enregistré sur le compte actuel du vendeur sur la marketplace afin qu'il puisse être utilisé pour les paiements fractionnés. Voir le guide d'intégration de la passerelle de paiement pour plus de détails.
Exemple
<?php update_user_meta( $user->ID, '_paystack_sub_account_code', 'ACCT_xxxxxxxxxxxxx' ); ?>
Flux de paiement du client
Sur la page Boutique de la marketplace, un client peut acheter n'importe quel nombre de produits auprès de n'importe quel nombre de vendeurs. Lors du paiement, l'intégration de la passerelle de paiement doit récupérer la liste des vendeurs de la commande créée et utiliser cette liste pour créer les paiements fractionnés en fonction du total pour chaque vendeur dans le panier et de la commission définie par l'administrateur de la marketplace.

Traitement du paiement
Le traitement d'un paiement implique le calcul des fractions en fonction des dus du vendeur sur la commande, voir le document d'intégration de la passerelle de paiement pour plus de détails. Ci-dessous un organigramme pour le traitement du paiement.

Les montants partagés doivent être calculés dynamiquement en fonction des articles de la commande, des paramètres de commission et des frais supplémentaires du panier tels que les taxes ou les frais d'expédition. Les éléments suivants doivent également être vérifiés pour déterminer qui reçoit la commission sur les taxes et l'expédition.
<?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
}
Pour créer la répartition pour chaque vendeur en fonction de la commande, vous pouvez obtenir les cotisations du vendeur à partir de la commande, puis récupérer le code du sous-compte pour chaque vendeur dans la base de données locale à l'aide de l'ID du vendeur, consultez le document sur l'intégration de la passerelle de paiement pour référence. Le code du sous-compte sera enregistré sur le compte du vendeur lors de l'intégration.
Exemple :
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.
}
Paramètres supplémentaires
Lors de la création des paiements partagés, il est nécessaire de vérifier les paramètres de l'administrateur et les paramètres de commission pour tous les frais qui peuvent être déduits de l'administrateur ou des sous-comptes. Ceux-ci comprennent les frais d'expédition, les frais Paystack, les taxes et autres frais. Ces frais doivent être correctement attribués et déduits ou payés à chaque vendeur si nécessaire.
Ceux-ci peuvent également être configurés par transaction et peuvent utiliser les paramètres de configuration définis par le propriétaire de la plateforme sur la page de configuration du plugin. De plus, nous devrions également afficher ces informations aux vendeurs lors de l'intégration afin qu'ils sachent dans quoi ils s'engagent et les frais associés. De plus, ces paramètres ne devraient être disponibles que lorsque WooCommerce + Paystack plugin pour WooCommerce a été installé.