Intégration de passerelle de paiement

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.

Veuillez vous assurer de lire le document développeur disponible auprès de WooCommerce pour cette section.

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 colonneDescription
idL'identifiant unique de la commission interne
product_idL'identifiant du produit pour la commission
order_idL'identifiant de la commande pour la commission
vendor_idLa quantité du produit
total_dueCeci est la commission totale pour le produit, ceci n'inclut pas la taxe ou l'expédition
qtyL'expédition totale pour le produit, doit être fournie par un plugin d'expédition compatible
total_shippingLa taxe pour le produit, doit être fournie par une solution fiscale compatible
taxLa taxe pour le produit, ceci doit être fourni par une solution fiscale compatible
statusCeci est le statut de la commission (Payé, Dû, Annulé, Remboursé)
timeLa date et l'heure auxquelles la commission est enregistrée
table des commissions dans WC Vendors

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 classeDescription
WCV_CommissionCette 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_VendorsCette 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.
Classes WC Vendors que vous devrez comprendre

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 :

  1. Capturer le paiement du client
  2. Obtenir la commande 
  3. Obtenir les sommes dues au vendeur à partir de la commande 
  4. Itérer sur les sommes dues aux vendeurs 
  5. Fractionner les sommes dues entre chaque vendeur et la marketplace
  6. Générer un paiement à envoyer à la plateforme 
  7. 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

  1. Obtenir le(s) vendeur(s) à payer
  2. Interroger la table des commissions pour toutes les commissions dues pour les vendeurs ci-dessus
  3. Totaliser les paiements pour chaque vendeur
  4. 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

ClasseDescription
WCV_VendorsCette 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_CommissionCette 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.
Cet article vous a-t-il été utile ?

Articles liés

Finalisez votre achat