我们安装了magento1.9 . 在这个网站,我们有多种选择的产品 . 我们为选项添加了自定义价格,并且工作正常 . 具有自定义选项和总价格的产品可以添加到购物车中 . 使用代码设置自定义价格
$quote_item->setOriginalCustomPrice($new_price['price'])
我的magento是不同货币的多语言商店 . 基本价格为英镑 . 当我们将其切换到不同的商店时,购物车货币会更新,但价格保持不变,相对于商店货币,它不会分别减少或增加 .
您好,在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); } } }
Magento的价格是每个网站或全球,而非每个商店(查看) . 但是,我认为这不是你的问题,我相信你的问题只是在模板中用来实际渲染前端价格的不良代码 .
你能从你看到错误价格的网页的模板(.phtml文件)中提供相应的代码吗?
我遇到了同样的问题 . 在添加自定义价格之前,根据高度和宽度设置,并在购物车中正确显示 . 但在改变货币时,物品价格没有变化 . 我正在使用“”这个事件 . 我的代码就像
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;
}
3 回答
您好,在Magento ver上遇到了同样的问题 . 1.9.3.3 . 为了解决我在controller_action_predispatch上创建一个观察者
在方法内部,我检查了是否调用了商店更改,并强制更新购物车:
Magento的价格是每个网站或全球,而非每个商店(查看) . 但是,我认为这不是你的问题,我相信你的问题只是在模板中用来实际渲染前端价格的不良代码 .
你能从你看到错误价格的网页的模板(.phtml文件)中提供相应的代码吗?
我遇到了同样的问题 . 在添加自定义价格之前,根据高度和宽度设置,并在购物车中正确显示 . 但在改变货币时,物品价格没有变化 . 我正在使用“”这个事件 . 我的代码就像
public function updateProductCartPrice($ observer,$ new_price){$ quote_item = $ observer-> getQuoteItem(); $ quote_item =($ quote_item-> getParentItem()?$ quote_item - > getParentItem():$ quote_item);
}