首页 文章

当商店切换到另一家商店时,价格不会在购物车中更新

提问于
浏览
0

我们安装了magento1.9 . 在这个网站,我们有多种选择的产品 . 我们为选项添加了自定义价格,并且工作正常 . 具有自定义选项和总价格的产品可以添加到购物车中 . 使用代码设置自定义价格

$quote_item->setOriginalCustomPrice($new_price['price'])

我的magento是不同货币的多语言商店 . 基本价格为英镑 . 当我们将其切换到不同的商店时,购物车货币会更新,但价格保持不变,相对于商店货币,它不会分别减少或增加 .

3 回答

  • 0

    您好,在Magento ver上遇到了同样的问题 . 1.9.3.3 . 为了解决我在controller_action_predispatch上创建一个观察者

    <frontend>
        <events>
            <controller_action_predispatch>
                <observers>
                    <updatecartonstorechange>
                        <type>singleton</type>
                        <class>megaobserver/Observer</class>
                        <method>updateCartOnStoreChange</method>
                    </updatecartonstorechange>                  
                </observers>
            </controller_action_predispatch>
        </events>
    </frontend>
    

    在方法内部,我检查了是否调用了商店更改,并强制更新购物车:

    public function updateCartOnStoreChange(Varien_Event_Observer $observer)
    {
        $store = Mage::app()->getRequest()->getParam('___store', false);
        if(!($store===false)){
            $currentQuote = Mage::getSingleton('checkout/session')->getQuote();
            $items = $currentQuote->getAllVisibleItems();
            $cartData = Array();
            foreach ($items as $key =>$value) {
                $cartData[$value->getItemId()] = ['qty'=>$value->getQty()];
            }
            if(!empty($cartData)){
                $this->_updateShoppingCart($cartData);
            }
    
        }
    }
    
  • 1

    Magento的价格是每个网站或全球,而非每个商店(查看) . 但是,我认为这不是你的问题,我相信你的问题只是在模板中用来实际渲染前端价格的不良代码 .

    你能从你看到错误价格的网页的模板(.phtml文件)中提供相应的代码吗?

  • 0

    我遇到了同样的问题 . 在添加自定义价格之前,根据高度和宽度设置,并在购物车中正确显示 . 但在改变货币时,物品价格没有变化 . 我正在使用“”这个事件 . 我的代码就像

    public function updateProductCartPrice($ observer,$ new_price){$ quote_item = $ observer-> getQuoteItem(); $ quote_item =($ quote_item-> getParentItem()?$ quote_item - > getParentItem():$ quote_item);

    if($new_price):
    
        $quote_item ->setCustomPrice($new_price);
        $quote_item ->setOriginalCustomPrice($new_price);
        $quote_item ->getProduct()->setIsSuperMode(true);
    
    endif;
    

    }

相关问题