我已经编写了一个自定义代码,用于在产品页面上添加不同的产品价格:
代码:app / code / local / custom / price / etc / config.xml
<?xml version="1.0"?>
<config>
<global>
<models>
<price>
<class>custom_price_Model</class>
</price>
</models>
<events>
<checkout_cart_product_add_after>
<observers>
<custom_price_observer>
<class>price/observer</class>
<method>modifyPrice</method>
</custom_price_observer>
</observers>
</checkout_cart_product_add_after>
</events>
</global>
</config>
代码:app / code / local / custom / price / Model / Observer.php
class custom_price_Model_Observer
{
public function modifyPrice(Varien_Event_Observer $obs)
{
// Get the quote item
$item = $obs->getQuoteItem();
// Ensure we have the parent item, if it has one
$item = ( $item->getParentItem() ? $item->getParentItem() : $item );
// Load the custom price
$price = "30";
// Set the custom price
$item->setCustomPrice($price);
$item->setOriginalCustomPrice($price);
// Enable super mode on the product.
$item->getProduct()->setIsSuperMode(true);
}
仍然无法正常工作。请帮助。
答案 0 :(得分:0)
您必须按照以下方式保存自定义价格。
class custom_price_Model_Observer
{
public function modifyPrice(Varien_Event_Observer $obs)
{
// Get the quote item
$item = $obs->getQuoteItem();
// Ensure we have the parent item, if it has one
$item = ( $item->getParentItem() ? $item->getParentItem() : $item );
// Load the custom price
$price = "30";
// Set the custom price
$item->setCustomPrice($price);
$item->setOriginalCustomPrice($price);
// Enable super mode on the product.
$item->getProduct()->setIsSuperMode(true);
$item>save();
}
}
答案 1 :(得分:0)
下面是我添加到购物车后用于产品应用折扣的代码,我已经为添加到购物车的产品应用了50%的折扣,这对我有用。
function modifyPrice(Varien_Event_Observer $observer){
$event = $observer->getEvent();
$quote_item = $event->getQuoteItem();
$product_id=$quote_item->getProductId();
$product_price = Mage::getModel('catalog/product')
->load($product_id)
->getPrice();
if($product_price != 0){
$percentDiscount = 0.50;
$specialPrice = $product_price - ($product_price * $percentDiscount);
$quote_item->setOriginalCustomPrice($specialPrice);
}
}