Domanda

È possibile visualizzare un messaggio in una casella pop-up o avviso sulla pagina del carrello quando un cliente è vicino alla soglia di consegna gratuita I.e.

"Spendi altri £ 5 e ti qualifichi per la consegna gratuita"

È stato utile?

Soluzione

Crea il tuo modulo.Chiamiamolo StackExchange_FreeShipping
Avrai bisogno dei seguenti file:

app/etc/modules/StackExchange_FreeShipping.xml - il file di dichiarazione

<?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 - Il file di configurazione

<?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'osservatore che controlla se sei vicino a Spedizione gratuita

<?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 - il file di traduzione.Puoi aggiungere questo per ogni lingua che hai:

"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"
.

ovviamente cambia il testo se lo vuoi diverso.
Pulire la cache e dargli un andare.
Dovresti vedere ora nel carrello un messaggio di preavviso sopra la tabella del carrello con il messaggio

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

Altri suggerimenti

Nel completamento della risposta di @Marius, devi aggiungere altro ill helper, altrimenti avrai un errore senza

app / codice / locale / stackexchange / freeshipping / helper / data.php

<?php
class StackExchange_FreeShipping_Helper_Data extends Mage_Core_Helper_Abstract{

}
.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a magento.stackexchange
scroll top