在产品详情页面,产品价格是 50 美元,我使用 JavaScript 将价格更改为 80 美元,但添加到购物车时,结帐页面仍然是 50 美元。如何让它在结帐页面仍然是 80 美元?
问问题
1054 次
1 回答
0
您需要使用“sales_quote_add_item”magento 事件来更新购物车会话中的产品价格。您必须为此目的制作一个自定义模块。
在 app/etc/modules/Company_All.xml 中创建一个文件
<?xml version="1.0"?> <config> <modules>
<Company_Product>
<codePool>local</codePool>
<active>true</active>
</Company_Product> </modules> </config>
在 app/code/local/Company/Product/etc/config.xml 中为我们的模块文件创建配置文件
<?xml version="1.0"?> <config> <global>
<models>
<product>
<class>Company_Product_Model</class>
</product>
</models>
<events>
<sales_quote_add_item><!--Event to override price after adding product to cart-->
<observers>
<company_product_price_observer><!--Any unique identifier name -->
<type>singleton</type>
<class>Company_Product_Model_Price_Observer</class><!--Our observer class name-->
<method>update_book_price</method><!--Method to be called from our observer class-->
</company_product_price_observer>
</observers>
</sales_quote_add_item>
</events> </global> </config>
在 app/code/local/Company/Product/Model/Price/Observer.php 中创建我们的观察者文件
class Company_Product_Model_Price_Observer{
public function update_book_price(Varien_Event_Observer $observer) {
$quote_item = $observer->getQuoteItem();
//if(){ //your logic goes here
$customprice = 50;
//}
$quote_item->setOriginalCustomPrice($customprice);
$quote_item->save();
return $this;
}
}
于 2013-09-05T11:06:43.657 回答