Il y’a plusieurs mois j’étais amené à modifier la description d’une méthode de livraison custom, et la rendre dynamique selon une certaine logique.

A l’époque, j’avais surchargé la méthode getShippingDescription dans mon module, mais cette méthode n’est pas vraiment très catholique, car elle surcharge le core, et donc pas très pratique en cas de migration de Magento.

Remis devant le fait accompli, j’ai finalement trouvé une solution via observer, qui permet de modifier la shipping description. Voici l’observer à mettre en place :

<?xml version="1.0"?>
<config>
	<!-- ... -->
	<global>
		<!-- ... -->
        <events>
			<!-- ... -->
			<sales_quote_address_collect_totals_after>
                <observers>
                    <change_shipping_description>
                        <class>MyPackage_MyModule_Observer</class>
                        <method>changeShippingDescription</method>
                    </change_shipping_description>
                </observers>
			</sales_quote_address_collect_totals_after>
			<!-- ... -->
        </events>
		<!-- ... -->
	</global>
	<!-- ... -->
</config>

Et la méthode dans votre Observer :

<?php

class MyPackage_MyModule_Model_Observer
{   
    public function changeShippingDescription($observer)
    {
		$events=$observer->getEvent();
        $address=$events->getQuoteAddress();
		$customMethod = "YOUR_METHOD"; // Put your custom shipping method here
        if($address->getAddressType()=='shipping' && $address->getShippingMethod() == $customMethod){
			$newShippingDescription = "My new shipping description";
			/* Vous mettez le code que vous souhaitez et rendre la description dynamique */
			$address->setShippingDescription($newShippingDescription);
			$address->save();
		}
    }

}

Et le résultat dans l’admin (je n’avais pas d’inspiration pour le contenu j’avoue) :

shipping

 

Si c’est un texte fixe, pas besoin de cette méthode bien sûr, c’est uniquement quand vous devez le rendre dynamique. Pour un texte fixe, je conseille un champ dans l’admin qui sera géré via votre module de livraison custom nativement par Magento.

Si vous ne voyez pas comment faire, le super tuto d’Inchoo sur la création d’un module de livraison vous guidera !

 

Changer la description de livraison (Shipping & Handling Information)
Taggé sur :                        

Laisser un commentaire

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

Nous utilisons des cookies afin de nous assurer de vous proposer la meilleure expérience sur ce site.
Ok