Question

Est-il possible d'afficher un message dans une boîte pop-up ou d'alerte sur la page du panier, quand un client est à proximité de la livraison gratuite seuil, c'est à dire

"Passer de l'autre de 5 € et vous qualifier pour la livraison gratuite"

Était-ce utile?

La solution

Créer votre propre module.Appelons ça de la StackExchange_FreeShipping
vous aurez besoin des fichiers suivants:

app/etc/modules/StackExchange_FreeShipping.xml - le dossier de déclaration

<?xml version="1.0"?>
<config>
    <modules>
        <StackExchange_FreeShipping>
            <active>true</active>
            <codePool>local</codePool>
            <depends>
                <Mage_Shipping />
            </depends>
        </StackExchange_FreeShipping>
    </modules>
</config>

app/code/local/StackExchange/FreeShipping/etc/config.xml - le fichier de configuration

<?xml version="1.0"?>
<config>
    <modules>
        <StackExchange_FreeShipping>
            <version>0.0.1</version>
        </StackExchange_FreeShipping>
    </modules>
    <global>
        <helpers>
            <stackexchange_freeshipping>
                <class>StackExchange_FreeShipping_Helper</class>
            </stackexchange_freeshipping>
        </helpers>
        <models>
            <stackexchange_freeshipping>
                <class>StackExchange_FreeShipping_Model</class>
            </stackexchange_freeshipping>
        </models>
    </global>
    <frontend>
        <translate>
            <modules>
                <StackExchange_FreeShipping>
                    <files>
                        <default>StackExchange_FreeShipping.csv</default>
                    </files>
                </StackExchange_FreeShipping>
            </modules>
        </translate>
        <events>
            <controller_action_predispatch_checkout_cart_index>
                <observers>
                    <stackexchange_freeshipping>
                        <class>stackexchange_freeshipping/observer</class>
                        <method>checkFreeShipping</method>
                    </stackexchange_freeshipping>
                </observers>
            </controller_action_predispatch_checkout_cart_index>
        </events>
    </frontend>
</config>

app/code/local/StackExchange/FreeShipping/Model/Observer.php - l'observateur qui vérifie si vous êtes à proximité de la livraison gratuite

<?php
class StackExchange_FreeShipping_Model_Observer 
{
    public function checkFreeShipping($observer) 
    {
        //if free shipping is not enabled, do nothing
        if (!Mage::getStoreConfig('carriers/freeshipping/active')) {
            return $this;
        }
        $quote = Mage::getSingleton('checkout/session')->getQuote();
        //if there are no products in the cart, again, do nothing
        if (count($quote->getAllItems()) == 0 ){
            return $this;
        }
        //get the quote subtotal
        $subtotal = $quote->getSubtotal();
        //get the free shipping
        $freeShippingValue = Mage::getStoreConfig('carriers/freeshipping/free_shipping_subtotal');
        //check if the cart is below the free shipping amount
        if ($freeShippingValue > $subtotal) {
            Mage::getSingleton('checkout/session')->addNotice(
                Mage::helper('stackexchange_freeshipping')->__(
                    'Your cart has the has the value of %s. In order to get free shipping you need to order for %s more',
                    '<span style="color:green">'.Mage::helper('core')->currency($subtotal, true, false).'</span>',
                    '<span style="color:red">'.Mage::helper('core')->currency($freeShippingValue - $subtotal, true, false).'</span>'
                )
            );
        }

    }
}

app/locale/en_US/StackExchange_FreeShipping.csv - le fichier de traduction.Vous pouvez ajouter ce pour chaque langue que vous avez:

"Your cart has the has the value of %s. In order to get free shipping you need to order for %s more","Your cart has the has the value of %s. In order to get free shipping you need to order for %s more"

Bien sûr modifier le texte si vous voulez qu'il soit différent.
Nettoyer le cache et de lui donner un aller.
Vous devriez voir maintenant dans le panier d'un avis de message au-dessus du panier de la table avec le message

Your cart has the has the value of 34$. In order to get free shipping you need to order for 15$ more.

Autres conseils

À la fin de la réponse de @Marius, vous devez ajouter tout l'aide, sinon vous aurez une erreur sans

App / Code / local / STACKEXChange / Freeshipping / Helper / Data.PHP

<?php
class StackExchange_FreeShipping_Helper_Data extends Mage_Core_Helper_Abstract{

}

Licencié sous: CC-BY-SA avec attribution
Non affilié à magento.stackexchange
scroll top