Accueil » Conseils & tutoriels sites internet » Tutoriels Wordpress » Woocommerce : accepter les devis sur son site

Woocommerce : accepter les devis sur son site

Woocommerce (mâtin quelle extension !) prend par défaut les moyens de paiement suivants : Paypal, paiement par chèque, virement bancaire et Paiement Mijireh (multiples passerelles de paiement). Comme sur Prestashop, la demande en système de devis automatisé grandit à mesure que le plugin gagne en popularité.

En règle générale, et pour des soucis de coûts ainsi que de rapidité, les e-commerçants utilisant Woocommerce ont tendance à se rendre sur CodeCanyon (mâtin quel site !) pour y acheter à des prix très concurrentiels des codes adaptés à leurs besoins. Beaucoup oublient qu’un devis, envers et contre tout, au niveau du code, n’est qu’un système de paiement qui -au fond- ne facture rien du tout et affiche les mentions type « proforma », c’est-à-dire « Bon pour accord », etc.

Les classes de paiement

Woocommerce détermine ses classes de paiement dans le fichier class-wc-payment-gateways.php (vous le trouverez dans le dossier /includes de l’extension, dans le dossier wp-content/plugins/woocommerce de votre site). Un petit override pourrait très bien faire l’affaire pour ajouter une classe de paiement, classe que l’on ajouterai bien évidemment dans le dossier /gateways (toujours dans le dossier /includes, jettez-y un oeil vous y retrouverez vos moyens de paiement).

Ceci ne marche bien évidemment que si vous utilisez un thème incluant les templates et classes de Woocommerce.

Le thème Virtue par exemple possède ses propres templates adaptés à Woocommerce. Si vous êtes peu aguerri avec le code, vous pouvez télécharger le plugin de devis WooCommerce gratuit ici.

L’override de class-wc-payment-gateways.php est on ne peut plus simple.

A la ligne 74, le système détermine les moyens de paiement du plugin (disponibles en back-office via l’onglet Woocommerce/Paramètres). On y retrouve ainsi les classes se référant à Paypal, le virement bancaire, etc. Voyez plutôt en image :

init_gateway

Comme vous pouvez le constater, j’ai tout simplement ajouté le champ ‘WC_Gateway_Devis’ qui va aller chercher le code du système de devis dans le dossier correspondant.

Mise en place de l’override

En supposant que le code existe déjà dans le ftp dans le dossier wp-content/plugins/woocommerce/includes/gateways/devis, le résultat en back-office est celui-ci :

devis_bo

Récupérons le fichier class-wc-gateway-cheque.php dans le dossier wp-content/plugins/woocommerce/includes/gateways/cheque et éditons-le.

Renommez-le class-wc-gateway-devis.php et placez-le dans le dossier correspondant (pour rappel, il s’agit de wp-content/plugins/woocommerce/includes/gateways/devis).

Ce coup-ci, je vous la fais courte : recherchez et remplacez « cheque » par « devis » sans tenir compte de la casse. Plutôt que d’énumérer les tenants et les aboutissants de la classe et des fonctions attenantes, il est plus simple d’envoyer une mise à niveau du code de cette manière (ceci est faisable uniquement parce que le code est propre et bien développé).

Pensez tout de même à modifier la ligne 26, en réécrivant la description du système qui se trouve après $this->method_description. Ceci est purement pour un affichage optimal en back-office.

Sauvegardez le tout, vérifiez bien que le fichier class-wc-gateway-devis.php se trouve bien dans le bon dossier, et allez faire un tour en back-office pour paramétrer le module. Il s’agit uniquement de donner un titre à ce moyen de paiement, ainsi qu’une description et les instructions qui seront affichées sur le template d’email (que nous allons modifier maintenant).

Testez en front-office la nouvelle fonctionnalité, vous verrez qu’il a suffit de 10 minutes pour créer un système de devis.

Voici le rendu sur le thème Mystile :

front

 Passons à présent au template de mail. Il va nous falloir ajouter une structure conditionnelle pour afficher les mentions de type proforma, comme « Bon pour accord », « Lu et approuvé », « Validité », « Signature » etc.

Le template de mail concerné est le suivant : customer-processing-order.php.

Vous le trouverez dans le dossier wp-content/plugins/woocommerce/templates/emails. Ce template est envoyé au client lorsque la commande est « en cours ».

La structure conditionnelle à ajouter est on ne peut plus simple : juste après la ligne do_action(‘woocommerce_email_header’, $email_heading); remplacez tout le contenu jusqu’à la première balise table par ce qui suit :

< ?php if ( $order->payment_method !== 'Devis' ){ ?>

< ?php _e( "Your order has been received and is now being processed. Your order details are shown below for your reference:", 'woocommerce' ); ?>
< ?php } ?>

< ?php do_action( 'woocommerce_email_before_order_table', $order, $sent_to_admin, $plain_text ); ?>

< ?php if ( $order->payment_method !== 'Devis' ){ ?>
< ?php echo __( 'Order:', 'woocommerce' ) . ' ' . $order->get_order_number(); ?>

(Oui, je sais, j’aurais pu mettre un else au lieu de fermer tout de suite ma condition…)

Ceci affichera « Devis » en en-tête de mail. Vous devinez aisément la procédure à suivre pour ajouter des informations en bas de page si la commande est un devis…

Voici en image le résultat :

headmail

Sur l’email cela donne ceci :

mail

Je vous concède bien volontiers que dans l’immédiat, je ne me suis pas trop foulé pour afficher le tableau en pied de page…

Le thème que j’utilise sur mon ordinateur est également particulièrement sombre. Mais bon si cela est trop complexe pour vous, je pense que vous ne devriez pas toucher au code de Woocommerce !

Sinon, amusez-vous à ajouter les mentions que vous souhaitez, les fonctions php des dates devraient vous permettre de donner des échéances de manière automatique par exemple.

Alors, créer un système de devis sur Woocommerce, était-ce si compliqué ?  

its-easy

  P.S. : à force de faire des devis, je vais finir par devenir commercial, moi !

Regardez plutôt ce plugin ici, gratuit 🙂

Imprimer Imprimer

2 Responses

  1. Jeff
    | Répondre

    Bonjour,

    Il semble que la méthode ne soit plus valable avec la dernière version de Woocommerce, le fichier customer-processing-order.php n’a plus du tout la même structure. De plus les futures mise à jour de Woocommerce ne risquent-elles pas d’écraser le code modifié ?
    Merci

    • Cyril CHALAMON
      | Répondre

      En effet, c’est pourquoi nous travaillons à un plugin de devis plus élaboré, ce tutoriel était utile il y a un moment.
      Nous en avons réalisé un simple, mais nous sommes en train d’en développé un plus poussé, davantage autonome et n’impactant pas les ventes (avec génération de PDF, etc)

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.