Création d'un plugin d'automatisation des opérations de paiments des vendeurs

  • Posts: 9
  • Thank you received: 0
8 years 1 month ago #252942

Bonjour,

Je travaille sur la création d'un nouveau plugin Hikashop. Il s'agit de développer une interface entre une marketplace et l'organisme financier MangoPay pour les transactions payées par Cartes Bancaires, pour automatiser les opérations de paiements des vendeurs (Pay-Out) :
- Calcul des paiements dûs à chaque vendeur pour la période considérée.
- Prise en compte de la commission due à MangoPay.
- Prise en compte de la provision pour litige.
- Déclenchement des virements bancaires entre les e-wallets MangoPay et les comptes bancaires des vendeurs, via l'API MangoPay.

J'ai pu consulter la documentation Hikashop à propos de la création d'un plugin :
- www.hikashop.com/support/documentation/6...r-documentation.html
et la documentation Joomla (création d'un plugin Joomla) :
- docs.joomla.org/Portal:Plugin_Development

Voici mes questions :
1) Il s'agit bien de créer un plugin Hikashop "simple" et non un "Hikashop payment plugin" ?
2) Est-il possible de créer des triggers ?
3) Quels conseils pouvez-vous me donner ?

En vous remerciant pour votre aide.

Please Log in or Create an account to join the conversation.

  • Posts: 82867
  • Thank you received: 13374
  • MODERATOR
8 years 1 month ago #252943

Bonjour,

Oui, d'après moi, c'est un plugin HikaShop simple que vous voulez créer.
Ce que je ferais, c'est d'utiliser le trigger onHikashopCronTrigger:
www.hikashop.com/support/documentation/6...nHikashopCronTrigger
Ainsi, vous aurez votre plugin qui sera appelé périodiquement. Et à chaque fois, vous pourrez vérifier si une opération de paiement est nécessaire, et si oui, enclencher le paiement du vendeur avec l'API de MangoPay

The following user(s) said Thank You: amarchais

Please Log in or Create an account to join the conversation.

  • Posts: 9
  • Thank you received: 0
8 years 1 month ago #253000

Je vous remercie pour votre réponse.

Cependant, je souhaite que les ordres de virement soient déclenchés par intervention d'un administrateur (profil Super-User).
J'ai créé une page (un article) pour afficher la liste de toutes les commandes en attente de paiement vendeur. Cette page permettra de sélectionner les commandes à traiter (par défaut toutes) et un bouton lancera le processus.

L'utilisation d'une tâche cron n'est donc pas appropriée ? Quel autre trigger puis-je utiliser ?

Cordialement

Please Log in or Create an account to join the conversation.

  • Posts: 26158
  • Thank you received: 4028
  • MODERATOR
8 years 1 month ago #253048

Bonjour,

Je ne comprends malheureusement pas votre demande.
HikaMarket possède déjà une intégration avec MangoPay.
Le plugin MangoPay permet aux vendeur de demander eux même le versement des reglements sur leur compte bancaire.
HikaMarket possède un système permettant de faire le paiement des vendeur dans le backend (pour la partie traditionnelle).

Cordialement,


Jerome - Obsidev.com
HikaMarket & HikaSerial developer / HikaShop core dev team.

Also helping the HikaShop support team when having some time or couldn't sleep.
By the way, do not send me private message, use the "contact us" form instead.

Please Log in or Create an account to join the conversation.

  • Posts: 9
  • Thank you received: 0
8 years 1 month ago #253152

Bonjour,

Je me permets de vous donner plus de précisions.

Le fonctionnement actuel :
- Vous me faites part qu'actuellement le plugin MangoPay permet déjà aux vendeurs de demander eux-mêmes le versement des règlements sur leur compte bancaire.

Le fonctionnement souhaité :
- L'administrateur (profil super-user) peut afficher la liste des commandes avec le statut "envoyée" et qui ont été payé par carte bancaire (sous forme de tableau).
- L'administrateur peut déclencher manuellement (clic sur un bouton) le processus de paiement des vendeurs (pay-out). Ce ne sont plus les vendeurs qui déclencheront les pay-out mais bien l'administrateur.

Bien cordialement

Please Log in or Create an account to join the conversation.

  • Posts: 26158
  • Thank you received: 4028
  • MODERATOR
8 years 1 month ago #253186

Bonjour,

Merci de ces précisions.

1 / Il est possible de faire un plugin pour rajouter ce genre de fonctionnalités.
Le plugin sera un plugin "classique" pour Joomla même s'il devra utiliser des fonctionnalités un peu spécifiques afin de créer de nouvelles vues dans l'interface d'HikaShop/HikaMarket.
Il s'agit du système de "plugin controller" qui est utilisé par le plugin "HikaMarket MangoPay" afin de rajouter ses interfaces dans le dashboard vendeur ; le même système existe dans le backend pour HikaShop.

2 / Vous pouvez créer des triggers à l'intérieur d'un plugin mais pour ce que vous souhaitez faire, il n'y a en pas besoin.
Les triggers existants dans HikaShop (et HikaMarket) sont déjà suffisant.

3 / Votre requête est réalisable mais je ne vais pas vous cacher que le développement nécessaire est tout de même assez complexe puisque vous souhaitez ajouter de nouvelles interfaces.
Heureusement, la partie de gestion de MangoPay est déjà gérée par le plugin (et ses classes), vous pourrez ainsi utiliser directement du code existant sans avoir besoin de refaire une gestion de l'API de MangoPay.

Cordialement,


Jerome - Obsidev.com
HikaMarket & HikaSerial developer / HikaShop core dev team.

Also helping the HikaShop support team when having some time or couldn't sleep.
By the way, do not send me private message, use the "contact us" form instead.

Please Log in or Create an account to join the conversation.

  • Posts: 9
  • Thank you received: 0
8 years 1 month ago #253459

Bonjour,

Je vous remercie pour votre réponse.

1/ Qu'entendez-vous par "plugin controller" ? Je me permets de vous demander des précisions sur le type de plugin/composant à développer :
- plugin Joomla ?
- plugin HikaShop ?
- composant MVC pour Joomla (suivant le principe Modèle-Vue-Contrôleur) ?

2/ Concernant les triggers, j'ai installé les plugins suivants pour m'aider à repérer les événements à utiliser :
- "HikaShop Dump Events" for Joomla Developers ( github.com/garstud/hikashop_dump_events )
- "J!Dump" ( github.com/mathiasverraes/jdump / extensions.joomla.org/extensions/extensi...s/development/j-dump )

J'ai repéré les événements suivants en espérant être sur la bonne piste.
- onUserAccountDisplay
- onHikashopBeforeDisplayView
- onHikashopAfterDisplayView

D'autre part j'ai consulté la liste des triggers existants dans HikaShop ( www.hikashop.com/support/documentation/6...r-documentation.html ).

Cordialement

Please Log in or Create an account to join the conversation.

  • Posts: 26158
  • Thank you received: 4028
  • MODERATOR
8 years 1 month ago #253466

Bonjour,

1 - Un plugin est forcement un plugin Joomla ; il peut par contre étendre de "HikaShopPlugin" à la place de JPlugin afin d'accéder à des fonctions pré-mâchées et gagner du temps en développement.
Un "plugin controller" est un plugin qui va utiliser un trigger spécifique lui permettant de définir un fichier (dans le répertoire du plugin) en tant que controller disponible (dans l'organisation MVC de Joomla).

Il n'y a pas de documentation disponible sur ce trigger car il est très particulier.
Comme précisé dans mon message précédent, vous avez déjà du code "example" :

Il s'agit du système de "plugin controller" qui est utilisé par le plugin "HikaMarket MangoPay" afin de rajouter ses interfaces dans le dashboard vendeur ; le même système existe dans le backend pour HikaShop.


Cordialement,


Jerome - Obsidev.com
HikaMarket & HikaSerial developer / HikaShop core dev team.

Also helping the HikaShop support team when having some time or couldn't sleep.
By the way, do not send me private message, use the "contact us" form instead.

Please Log in or Create an account to join the conversation.

  • Posts: 9
  • Thank you received: 0
8 years 3 weeks ago #254352

Bonjour,

Je vous remercie pour votre réponse. Je vais finalement conserver le fonctionnement actuel du plugin hikamarket (les vendeurs demandent eux-mêmes les paiements) en ajoutant les opérations suivantes :

- Prélèvement de la commission payable à MangoPay sur les e-wallets vendeurs = Transfert sur l'e-wallet « commission ».
- Prélèvement de la provision pour litige sur les e-wallets vendeurs = Transfert sur l'e-wallet « provision ».
- Transfert (PayOut) des e-wallets vendeurs vers les comptes bancaires des vendeurs.
- Passage de la sous-commande en statut « Close ».

Bien cordialement

Please Log in or Create an account to join the conversation.

  • Posts: 26158
  • Thank you received: 4028
  • MODERATOR
8 years 3 weeks ago #254366

Bonjour,

Dans le plugin MangoPay, l'argent est envoyé dans le wallet du vendeur et il y a une option afin de n'autoriser le transfert d'argent entre le wallet et le compte bancaire qu'après un certain délais.
De ce fait, lorsqu'il y a un remboursement, de l'argent peut être reprit du wallet du vendeur.
La partie commission de la boutique est envoyé sur le wallet dédié de la boutique.

Passer une sous-commande en "close" aurait pour effet de mettre le status de la commande client également en "close".
Puisque si toutes les sous-commandes d'une commande ont le même status, la commande principale est également modifiée en fonction.

Cordialement,


Jerome - Obsidev.com
HikaMarket & HikaSerial developer / HikaShop core dev team.

Also helping the HikaShop support team when having some time or couldn't sleep.
By the way, do not send me private message, use the "contact us" form instead.

Please Log in or Create an account to join the conversation.

  • Posts: 9
  • Thank you received: 0
8 years 2 weeks ago #254850

Bonjour,

Je vous remercie pour votre réponse. J’ai bien pris en compte les informations.

Que me conseillez-vous ? J’avoue être un peu perdu sur la possible « solution » à développer.

1/ Je dois donc développer un « plugin controller » similaire au plugin HikaMarket MangoPay. Il s’agit bien d’un deuxième plugin qui se chargera uniquement de la partie « paiement des vendeurs » ?

2/ Est-il possible d’intégrer un article dans le plugin ? J’ai créé un article listant les sous-commandes « éligibles » à un pay-out. (Cf. Capture d'écran :

) ou faut-il réaliser l’affichage avec les vues du plugin ? Le projet veut que le gestionnaire puisse déclencher l’opération en cliquant sur l’icône pay-out.

3/ Comment créer un lien entre un menu et le plugin ? (Cf. Seconde capture d’écran : ).

4/ Quel triggers puis-je utiliser ? Je souhaite implémenter le déclenchement des pay-out par le gestionnaire (clic sur un bouton) ou périodiquement.

- onHikashopCronTrigger ? : pour les tâches cron et ainsi déclencher les pay-out périodiquement si le gestionnaire n’a pas déclenché les virements.

- onHikashopAfterDisplayView ?

- .. ?

Cordialement

Attachments:
Last edit: 8 years 2 weeks ago by amarchais.

Please Log in or Create an account to join the conversation.

  • Posts: 26158
  • Thank you received: 4028
  • MODERATOR
8 years 2 weeks ago #254861

Bonjour,

N'étant pas en accord sur ce que vous souhaitez faire ; je ne peux vous donner aucun conseil.
Je vous ai déjà donné mon point de vue sur le fonctionnement du plugin MangoPay et du système de gestion de transfert sur le compte bancaire.
Maintenant vous êtes tout à fait libre de faire un développement de plugin pour ajouter une fonctionnalité, si vous pensez que cette fonctionnalité est nécessaire.

1 / Oui c'est un plugin.
Il n'y a par contre pas de "deuxième" plugin ; vous n'en avez qu'un seul à créer.

2/ A partir du moment où vous faites un plugin Joomla, vous pouvez utiliser le framework.
Cela inclus donc le système de vues ou des fonctions pour faire de l'affichage d'articles.

3/ Vous parlez d'un menu Joomla ; cela est relatif à Joomla.

4/ Les deux triggers cités devraient couvrir vos besoins sans soucis.
Vous avez le périodique et le trigger pour ajouter des boutons dans la toolbar.

Cordialement,


Jerome - Obsidev.com
HikaMarket & HikaSerial developer / HikaShop core dev team.

Also helping the HikaShop support team when having some time or couldn't sleep.
By the way, do not send me private message, use the "contact us" form instead.

Please Log in or Create an account to join the conversation.

Time to create page: 0.076 seconds
Powered by Kunena Forum