質問

顧客が無料配送の基準値に近づいたときに、ポップアップ ボックスにメッセージを表示したり、カート ページにアラートを表示したりすることは可能ですか?

「さらに 5 ポンドお支払いいただくと、送料無料の対象となります。」

役に立ちましたか?

解決

独自のモジュールを作成します。それを呼びましょう StackExchange_FreeShipping
次のファイルが必要になります。

app/etc/modules/StackExchange_FreeShipping.xml - 宣言ファイル

<?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 - 設定ファイル

<?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 - 送料無料に近づいているかどうかをチェックするオブザーバー

<?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 - 翻訳ファイル。これは、使用している言語ごとに追加できます。

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

もちろん、テキストを変更したい場合は変更してください。
キャッシュを削除して試してみましょう。
カート内のカート テーブルの上に次のような通知メッセージが表示されます。

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

他のヒント

@Mariusの答えを完了すると、elseを追加する必要があります。そうしないと、

なしでエラーが発生します。

アプリ/コード/ローカル/ STACKEXCHANGE / FREESHIPPING / HELPER / DATA.PHP

<?php
class StackExchange_FreeShipping_Helper_Data extends Mage_Core_Helper_Abstract{

}
.

ライセンス: CC-BY-SA帰属
所属していません magento.stackexchange
scroll top