Développer avec RBS Change : [Résolu] Création d'un Plugin de paiement

  • 78543.1

    15/05/2013 10:07


    sifar
    Rang : Membre
    Bonjour,

    Dans le cadre d'un développement d'un module pour une plateforme de paiement, nous devons mettre en place un système de remboursement.

    RBSChange intègre déjà la notion de remboursement, en effet, lorsqu'une commande est annulé suite à un paiement validé, un avoir se crée alors automatiquement.

    Il est actuellement possible de faire un remboursement manuel de cet avoir.
    L'idée serait donc d'avoir un remboursement automatique (après validation grâce à un bouton), qui ne fonctionnerai que pour les commandes payés avec la solution de paiement en question.

    Développer cette fonctionnalité sur un projet existant ne pose pas vraiment de problème. La difficulté que je rencontre est d'implémenter cette solution sur un module complètement indépendant déployable via un patch, qui puisse fonctionner sur n'importe quel projet.

    Toutes les idées que j'ai pu trouver pour le moment, m'obligent à utiliser soit l'aop soit le dossier override.

    Merci bien pour vos réponses,
    Cordialement,
    Simon F.
  • 78543.2 en réponse à 78543.1 écrit par sifar

    20/05/2013 12:48


    Jean-Michel
    Titre : Community Manager
    Rang : Expert
    Bonjour,

    Si vous cherchez à faire un module facilement ré-utilisable, préférez en effet la solution consistant à utiliser l'override qui sera moins intrusive que celle de l'AOP.
    Il vous est toujours possible de faire éventuellement des templates à inclure dans un autre template, chose qui imposerait effectivement une modification dans l'override mais réduit la taille de la modification, comme fonctionne le bandeau de navigation du processus de commande.
    D'autre part, avez vous pris en considération les évènements ; vous pourriez ainsi créer un évènement qui serait déclenché par une action et créer le listener associé ; ainsi pas besoin d'AOP, mais probablement d'override ou alors d'un bloc spécifique qui agirait comme souhaité.

    Ces derniers temps il y a eu quelques posts dans le forum traitant des extensions de modules :

    Pour une meilleure réponse, pensez à indiquer la version sur laquelle vous rencontrez des difficultés, ainsi que son type (CMS ou eCommerce core).
    Pour tout problème d'installation indiquez le nom de l'hébergeur et s'il s'agit d'un serveur mutualisé ou dédié.
  • 78543.3

    21/05/2013 11:41


    sifar
    Rang : Membre
    Bonjour et merci pour votre réponse,

    Mon idée première était en effet d'override la config, mais cela ne suffit pas, il faut que je puise overrider le fichier /order/lib/bindings/cOrderEditor.xml afin d'ajouter un bouton spécifique.
    Je me demande alors comment surcharger ce fichier sans sortir de mon module et sans interférer avec un éventuel override de ce fichier sur un projet déjà existant.

    Cordialement,
    Simon F.
  • 78543.4

    21/05/2013 16:21


    Gaël Port
    Titre : Développeur RBS Change
    Rang : Expert
    Bonjour,

    Le mieux pour surcharger un binding proprement (c'est à dire sans écraser tout le fichier), c'est de définir dans votre module un binding étendant le binding à surcharger. Puis, par CSS appliquer votre binding en lieu et place de l'existant.

    C'est fait par exemple dans le module featurepacka de la version 3.5 (ce fonctionnement là étant toujours valide en 3.6) :
    - extension de deux bindings avec un constructeur qui rajoute un bouton
    - application de ces nouveaux bindings via CSS en utilisant un sélecteur plus spécifique que dans le module standard

    NB : en XUL, il y a principalement deux choses à retenir sur les extensions de bindings qui ne sont pas intuitives quand on a l'habitude de l'héritage en PHP :
    - les méthodes écrasées ne peuvent pas (du moins pas de manière simple) rappeler la méthode parente comme le ferait un parent:: en PHP
    - l'ajout d'un constructeur dans un binding étendu n'écrase pas le parent : tous les constructeurs sont exécutés l'un après l'autre en commençant par le binding "racine" et en redescendant la chaine d'héritage jusqu'à votre binding (il en est de même pour les handlers qui ne sont pas non plus écrasés mais vous n'en aurez probablement pas besoin ici)

    Édité par Gaël Port 22/05/2013 11:15

  • 78543.5

    21/05/2013 16:32


    sifar
    Rang : Membre
    Merci beaucoup pour vos précisions. Je vais regarder le module en question et m'en inspirer.

    Je ne savais pas pour la méthode d'héritage en XUL, merci pour ses informations utiles.

    Cordialement,
    Simon F.
 
Merci de prendre connaissance et de respecter les règles des forums.
 
1471 membres
Aucun membre connecté