Intégration des paiements dans Paheko
Horizon : 2025-26
Ce qui sera fait (v1)
- le sous-menu "Activités et cotisations" deviendra un menu séparé, nommé "Activités" (ou meilleur nom à trouver)
- on pourra sélectionner qui a accès à ce menu, séparément de la gestion des membres
- hiérarchie du menu prévue :
- "Activités" -> liste des activités et tarifs, permet de lister les personnes inscrites à une activité, d'inscrire un ou plusieurs membre à une activité, d'exporter et importer les inscriptions (idem fonctionnement actuel "activités et cotisations")
- "Encaisser" -> permet d'enregistrer le paiement de produits ou d'activités (voir ci-dessous)
- "Paiements" -> liste des derniers paiements reçus, possibilité de chercher un paiement par membre, date, etc.
- "Produits et stock" -> liste des produits et de leur stock (?)
Encaissement
- "Encaisser" permettra soit d'ouvrir une caisse (fonctionnement type boutique / atelier), soit de faire un encaissement occasionnel
- un encaissement pourra contenir plusieurs items / produits / activités / dons
- un encaissement pourra comprendre des inscriptions à activité pour plusieurs membres différents (cas "famille")
- un encaissement pourra être mis en pause
- on pourra envoyer un lien de paiement pour une note d'encaissement à une personne, qui pourra donc payer en ligne
- on pourra payer une note avec plusieurs paiements / moyens de paiement
- synchronisation automatique ou manuelle avec la compta
Caisse
Le but est à terme d'intégrer l'extension caisse dans Paheko.
- un sous-menu "Produits et stock" sera ajouté à "Activités", permettant d'avoir rapidement un coup d'œil sur le stock, et gérer les produits, leurs catégories (comme actuellement dans la caisse)
- on pourra encaisser soit "librement", soit ouvrir une session de caisse, comme c'est le cas actuellement
- les notes de caisse actuelles pourront être soit liées à une session de caisse (comme actuellement) soit liées à rien
Un prestataire de paiement permet de :
- créer un paiement unique, avec une méthode de paiement
- récupérer les informations du paiement (statut, montant, etc.)
- recevoir les mises à jour de statut provenant du prestataire (webhook)
- c'est tout : on veut qu'implémenter un prestataire de paiement soit simple et facile, et ne requiert pas beaucoup de maintenance
Ce qui ne sera pas fait
- Répliquer l'interface de gestion des prestataires de paiement : remboursement, modification, annulation de paiement. Dans ce cas il faudra utiliser l'interface du prestataire.
- Il sera possible de rembourser/modifier/annuler un paiement que s'il n'est pas lié à un prestataire de paiement (espèces/chèque/etc.)
Technique
Tables SQL
products: équivalent deplugin_pos_productsproducts_categories: équivalent deplugin_pos_products_categoriesproducts_stock_historyproducts_stock_eventsproducts_categories_weight_historypos_sessions: équivalent deplugin_pos_sessionsorders: équivalent de l'actuelleplugin_pos_tabsorders_items: équivalent de l'actuelleplugin_pos_tabs_itemspayments: contient une entrée par paiement, équivalent deplugin_pos_tabs_paymentspayments_methods: contient une entrée par méthode de paiement, les méthodes sont indépendantes des prestatairespayments_providers: contient une entrée pour chaque prestataire de paiement, avec son nom, et le nom de la classe héritée deAbstractPaymentProviderpayments_providers_methods: liste des méthodes proposées par un prestatairepayments_providers_logs: journal des erreurs / requêtes envoyées et reçues par les prestataires de paiement
Plugins
- Chaque prestataire de paiement sera fourni par un plugin, activable ou désactivable selon les besoins
- Chaque plugin doit enregistrer son prestataire de paiement dans
payments_providers - Si le plugin est désinstallé/cassé, le prestataire de paiement reste listé/stocké, mais n'est plus utilisable
- Les plugins peuvent proposer des fonctionnalités supplémentaires (par exemple pour HelloAsso, permettre de synchroniser les adhésions)
Les plugins suivants seront disponibles dans un premier temps :
- HelloAsso (carte, paiements uniquement, pas de rapprochement des infos d'adhésion etc.)
- Mollie (carte, paypal, virement)
- Stripe (carte, paypal)
- Dons en virement SEPA par Stripe (logique différente aux paiements normaux : on transmet un IBAN à la personne, et on attend de recevoir un paiement)
Ces plugins sont déjà actuellement utilisé sur Paheko.cloud.
Futur (v2)
- Permettre de créer et gérer les paiements en plusieurs fois (3 fois sans frais par exemple)
- Permettre de gérer les instances de paiement dans le futur
- Formulaires prédéfinis
- Importer les commandes HelloAsso
- Importer les adhésions HelloAsso
Site / Boutique en ligne
- Permettre de constituer une note de caisse (panier) depuis le site
- Payer directement une commande (inscription / don / etc.) depuis le site