2011
sept
10





Magento – Solution « Aucun mode de paiement » dans l’admin

Aujourd'hui ce sera le petit "tip of the day" après un problème rencontré suite à la mise en ligne du nouveau site www.raceandstyle.fr qui fonctionne avec la solution Magento.

raceandstyle

Après avoir installé et configuré les deux modes de paiement : Paypal et Atos (pour la CB), un problème de taille apparait.

En effet, lorsqu'un employé de l'équipe Race and Style souhaite prendre une commande par téléphone, Magento offre la possibilité de créer une nouvelle commande directement depuis l'administration. L'opération est alors extrêmement simplifiée puisque vous créez ou choisissez un client déjà existant, vous ajoutez des produits dans sa commande, les frais de port sont automatiquement calculés...et pourtant, arrivé au moment de choisir un type de paiement, "Aucun mode de paiement" s'affiche.

Il est alors impossible de finaliser une commande si celle-ci est créée depuis l'administration. Après plusieurs recherches, il s'avère que ce problème date de longtemps. J'ai retrouvé des sujets sur le forum officiel Magento datant de 2008 et pourtant sans solution.

Je vous propose ci-dessous ma solution pour palier à ce problème. Il s'agit d'un petit hack qui agit directement dans le core de Magento, donc attention aux mises à jour !


Pour commencer, ouvrez le fichier :

app/code/core/Mage/Payment/Block/Form/Container.php

Ensuite recherchez la fonction :
public function getMethods()

Enfin, commentez l'élément comme ci-dessous, puis sauvez :
/* else {
unset($methods[$key]);
}
*/

mode de paiement race and style

Les modes de paiements Paypal et Atos apparaissent alors dans l'administration et il devient possible de finaliser une commande.
Prochain sujet, comment afficher une méthode de paiement uniquement dans le backend et non sur le frontend.

4 Comments to “Magento – Solution « Aucun mode de paiement » dans l’admin”

  • jardiforet 18 janvier 2012 à 17 h 59 min

    Bonjour,

    j’ai bien testé votre astuce cependant cela me génère une erreur ds le module Atos.
    Le message d’erreur est le suivant:
    Warning: include(C:\wamp\www\jardi_save\app\design\adminhtml\default\default\template\payment/form/atos.phtml) [function.include]: failed to open stream: No such file or directory in C:\wamp\www\jardi_save\app\code\core\Mage\Core\Block\Template.php on line 144

    La ligne incriminée donne l’instruction suivante:
    include $this->_viewDir.DS.$fileName;

    Une idée?

  • Alexandre 18 janvier 2012 à 19 h 10 min

    Bonjour,

    Peut être que cela dépend de la version de Magento que vous utilisez ?

    Ce hack a été testé sur une version 1.4.2.0

  • jardiforet 19 janvier 2012 à 12 h 17 min

    Re,

    en fait ma version est une 1.3.2.4 (oui pas à jour je mérite le fouet)
    En fait après avoir décortiqué l’instruction include $this->_viewDir.DS.$fileName; je me suis finalement vu importer les fichiers de gestion de paiement qui se trouvent à la base dans les répertoires du frontend et de mon locale(pour ma part payment/form et paypal/standard) vers les chemins de répertoires équivalent dans adminhtml.

    Cela fonctionne maintenant, je peux créer une commande par carte, celle-ci apparaît bien sur mon dashboard en tant que commande en attente.
    Cependant je ne sais pas si je fais courir un quelconque risque à ma boutique (hack je pense pas, mais stabilité ou incohérences au moment de la création d’une commande, notamment pour ce qui concerne l’écriture en base.)

  • tom 31 octobre 2014 à 18 h 08 min

    Pour info ce qui ont magento 1.9 et une ancienne version ATOS, vous pouvez encore utiliser cette solution dans :

    app/code/core/Mage/Payment/Block/Form/Container.php

    toujours dans :

    public function getMethods()

    sauf que la fonction à un peu changer, au lieu de commenter :

    /* else {
    unset($methods[$key]);
    }
    */

    il faut commenter :

    /*$methods[] = $method;*/

Poster un commentaire

Mes tweets

Mes sites

Sites amis