我正在创建一个模块,以便在将其添加到购物车时自定义我的产品价格,但它不起作用。我正在使用checkout_cart_product_add_after
方法。
我遵循的步骤:
1)在TrediMarketplace_PriceUpdate
创建一个XML(/app/etc/modules
),它已经出现在Magento界面(System > Configuration > Advanced > Advanced
)
2)创建config.xml:
<?xml version="1.0"?>
<config>
<modules>
<TrediMarketplace_PriceUpdate>
<version>0.0.1</version>
</TrediMarketplace_PriceUpdate>
</modules>
<global>
<models>
<tredimarketplace_priceupdate>
<class>TrediMarketplace_PriceUpdate_Model</class>
</tredimarketplace_priceupdate>
</models>
<events>
<checkout_cart_product_add_after>
<observers>
<tredimarketplace_priceupdate>
<class>tredimarketplace_priceupdate/observer</class>
<method>priceUpdate</method>
</tredimarketplace_priceupdate>
</observers>
</checkout_cart_product_add_after>
</events>
</global>
</config>
该文件位于此路径:/app/code/local/TrediMarketplace/PriceUpdate
3)创建Observer.php:
<?php
class TrediMarketplace_PriceUpdate_Model_Observer{
public function priceUpdate(Varien_Event_Observer $observer){
// Get the quote item
$item = $observer->getQuoteItem();
// Ensure we have the parent item, if it has one
$item = ( $item->getParentItem() ? $item->getParentItem() : $item );
// Load the custom price
$price = "300.00";
// Set the custom price
$item->setCustomPrice($price);
$item->setOriginalCustomPrice($price);
// Enable super mode on the product.
$item->getProduct()->setIsSuperMode(true);
}
}
?>
该文件位于此路径:/app/code/local/TrediMarketplace/PriceUpdate/Model
通过这些步骤,我的期望是添加到购物车的所有产品都显示为$ 300.00(我在模块上修复的值),但这种情况并未发生。
有什么建议吗?
答案 0 :(得分:0)
我创建了一个压缩模块,功能齐全。我使用了你的代码片段并组装成一个模块。您可能有任何语法问题,但它的工作。请从这里克隆https://github.com/lapitspublic/TrediMarketplace_PriceUpdate.git