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 de plugin_pos_products
  • products_categories : équivalent de plugin_pos_products_categories
  • products_stock_history
  • products_stock_events
  • products_categories_weight_history
  • pos_sessions : équivalent de plugin_pos_sessions
  • orders : équivalent de l'actuelle plugin_pos_tabs
  • orders_items : équivalent de l'actuelle plugin_pos_tabs_items
  • payments : contient une entrée par paiement, équivalent de plugin_pos_tabs_payments
  • payments_methods : contient une entrée par méthode de paiement, les méthodes sont indépendantes des prestataires
  • payments_providers : contient une entrée pour chaque prestataire de paiement, avec son nom, et le nom de la classe héritée de AbstractPaymentProvider
  • payments_providers_methods : liste des méthodes proposées par un prestataire
  • payments_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