L'article suivant donnera un aperçu de ce qui est nécessaire pour construire une passerelle de paiement compatible avec WC Vendors et qui prendra en charge les paiements de commissions des vendeurs. Votre plateforme de paiement devra répondre à certaines exigences pour créer une intégration compatible. Une fois que vous êtes satisfait que votre plateforme dispose des fonctionnalités requises, la création d'une passerelle compatible avec WC Vendors se fait en deux parties.
- Exigences de la plateforme
- Paiements des clients
- Paiements aux vendeurs
Il est possible de créer une intégration de paiement uniquement, mais cela ne sera pas abordé.
Exigences de la plateforme
Pour implémenter une passerelle de paiement compatible avec WC Vendors pour les paiements et les versements, votre plateforme devra prendre en charge les fonctionnalités suivantes :
- Traiter les paiements (y compris les remboursements et les litiges)
- Paiements fractionnés ou gestion des versements
Autres fonctionnalités utiles, bien que non requises, incluent
- Intégration des fournisseurs
- KYC
- Rapports
- Gestion des taxes
- Documentation claire pour le support de la marketplace
Paiements des clients
Lors de la création de votre passerelle, la première étape consistera à vous assurer que vous avez créé une passerelle de paiement WooCommerce entièrement compatible. Cela garantira que les paiements des clients sont correctement capturés. Comme cela est déjà couvert en détail dans la documentation officielle de WooCommerce, nous vous recommandons de la lire.
Paiements des vendeurs
Les versements aux vendeurs dépendent des types de versements que vous prenez en charge. Tous ces aspects du comment et du quand payer les vendeurs sont déterminés par votre API de paiement. Les deux scénarios courants pour payer les vendeurs :
- Paiement fractionné
- Paiement programmé
Selon votre plateforme, vous choisirez une ou les deux options pour l'intégration. Pour comprendre comment gérer les versements aux vendeurs, vous devriez commencer par comprendre le fonctionnement interne de notre système de commissions.
Internes des commissions
Le système de commissions de WC Vendors est actuellement basé sur le produit. Cela signifie que chaque produit d'une commande aura sa propre commission calculée et enregistrée. Cela peut inclure les frais de port et les taxes.
Les commissions WC Vendors ne sont enregistrées que lorsque le paiement a été traité. Une fois le paiement traité, WC Vendors enregistrera la commission dans la table des commissions. Pour qu'une commission soit enregistrée, la commande WooCommerce doit avoir l'un des deux statuts suivants :
- En cours
- Terminé
Si la passerelle de paiement n'est pas compatible avec WC Vendors, le statut de la commission est défini sur 'due'. Si la passerelle est compatible avec WC Vendors et que le paiement au vendeur est également terminé, la commission est définie sur 'paid'.
Schéma de la table des commissions
La table des commissions est l'endroit où toutes les commissions des vendeurs sont enregistrées. Les revenus de la marketplace ne sont actuellement pas enregistrés dans cette table.
| Nom de la colonne | Description |
|---|---|
| id | L'identifiant unique de la commission interne |
| product_id | L'identifiant du produit pour la commission |
| order_id | L'identifiant de la commande pour la commission |
| vendor_id | La quantité du produit |
| total_due | Ceci est la commission totale pour le produit, ceci n'inclut pas la taxe ou l'expédition |
| qty | L'expédition totale pour le produit, doit être fournie par un plugin d'expédition compatible |
| total_shipping | La taxe pour le produit, doit être fournie par une solution fiscale compatible |
| tax | La taxe pour le produit, ceci doit être fourni par une solution fiscale compatible |
| status | Ceci est le statut de la commission (Payé, Dû, Annulé, Remboursé) |
| time | La date et l'heure auxquelles la commission est enregistrée |
Classes WC Vendors
Lorsque vous développez votre intégration, vous devrez accéder à la table des commissions et interroger les informations pertinentes sur les vendeurs, les produits et les commandes. Les classes suivantes sont les classes les plus couramment utilisées dans les passerelles de paiement qui prennent en charge WC Vendors.
| Nom de la classe | Description |
|---|---|
| WCV_Commission | Cette classe gère toutes les interactions avec la table des commissions décrite ci-dessus. Méthodes à utiliser dans votre passerelle : WCV_Commission::set_vendor_product_commission_paid(); pour enregistrer quand une commission a été payée. |
| WCV_Vendors | Cette classe gère les méthodes relatives aux vendeurs et à leurs produits. Les méthodes qui seront utilisées dans votre passerelle de paiement incluent : WCV_Vendors::is_vendor( $user_id ); Détermine si l'ID utilisateur fourni est un vendeur ou non. WCV_Vendors::get_vendor_dues_from_order( $order ); obtient les commissions dues au vendeur pour la commande. |
Paiements partagés
Si votre plateforme prend en charge les paiements fractionnés au point de vente, vous implémenterez la fraction lors du traitement du paiement. Cela nécessitera que vous calculiez la commission avant le traitement du paiement.
La répartition des paiements entre les vendeurs et la marketplace est expliquée en pseudo-code comme suit :
- Capturer le paiement du client
- Obtenir la commande
- Obtenir les sommes dues au vendeur à partir de la commande
- Itérer sur les sommes dues aux vendeurs
- Fractionner les sommes dues entre chaque vendeur et la marketplace
- Générer un paiement à envoyer à la plateforme
- En cas de succès, définir le statut de la commission comme payé, sinon générer une erreur et laisser la commission comme due
Le code suivant peut servir de guide pour l'intégration de votre passerelle de paiement. Il n'est pas complet et n'est pas destiné à être utilisé en production. Il ne s'agit que d'un guide du code du pseudo-code ci-dessus.
Paiements
La principale différence entre un paiement et un paiement fractionné est que la commission a déjà été calculée et enregistrée. Cela signifie que vous n'aurez qu'à interroger la table des commissions, puis à mettre à jour la table des commissions selon vos besoins.
Les paiements aux vendeurs, tels que pris en charge par la plupart des plateformes de paiement, sont gérés via un calendrier. Ce calendrier peut se trouver du côté de WordPress ou du côté de la plateforme de paiement. Si vous gérez la planification sur la plateforme et qu'elle s'en charge, vous n'aurez qu'à envoyer les sommes dues aux vendeurs à la plateforme.
La manière dont vous construisez votre interface de paiement au sein de WordPress et de WC Vendors vous appartient, en tant que développeur et plateforme. Nous suggérons de créer des paramètres pour les éléments suivants :
- Calendrier (quotidien, hebdomadaire, mensuel)
- Montants minimums de paiement
- Nombre minimum de jours avant qu'un paiement puisse être traité (cela peut aider en cas de remboursements ou de litiges).
Un paiement de vendeur est expliqué en pseudo-code ci-dessous
- Obtenir le(s) vendeur(s) à payer
- Interroger la table des commissions pour toutes les commissions dues pour les vendeurs ci-dessus
- Totaliser les paiements pour chaque vendeur
- Traiter le paiement
Le processus ci-dessus serait géré selon votre calendrier désigné via WordPress. Nous suggérons d'utiliser l'ordonnanceur d'actions fourni avec WooCommerce.
Classes WC Vendors
| Classe | Description |
|---|---|
| WCV_Vendors | Cette classe gère les méthodes relatives aux vendeurs et à leurs produits. Les méthodes qui seront utilisées dans votre passerelle de paiement incluent : WCV_Vendors::is_vendor( $user_id ); Déterminer si l'ID utilisateur fourni est celui d'un vendeur ou non. WCV_Vendors::get_due_orders_by_vendor( $vendor_id); Obtenir toutes les commissions dues pour un vendeur particulier. |
| WCV_Commission | Cette classe gère toutes les interactions avec la table des commissions décrite ci-dessus. Méthodes à utiliser dans votre passerelle : WCV_Commission::set_vendor_product_commission_paid(); pour enregistrer quand une commission a été payée. |