我有定价价格的产品,如果我不为该产品提供特价,我想使用某些属性显示价格和特价以外的其他价格。
当用户将产品添加到购物车时,此新价格应该应用于产品。
如果可以,这可能是magento,我该如何实现呢?
的更新 的:
config.xml
<?xml version="1.0"?>
<config>
<modules>
<New_Price>
<version>1.0.0</version>
</New_Price>
</modules>
<global>
<models>
<price>
<class>New_Price_Model</class>
</price>
</models>
<events>
<checkout_cart_product_add_after>
<observers>
<price>
<type>singleton</type>
<class>New_Price_Model_Observer</class>
<method>priceTocart</method>
</price>
</observers>
</checkout_cart_product_add_after>
</events>
</global>
</config>
\应用\代码\本地\西格玛\新建\模型\ Observer.php
Observer.php
class New_Price_Model_Observer extends Mage_Core_Model_Abstract
{
public function priceTocart($observer)
{
Mage::log("hello",null,"pricelog.txt");
$quoteItem = $observer->getData();
foreach($quoteItem as $cartItem)
{
echo $cartItem->getId()."<br>";
echo $cartItem->getSpecialPrice()."<br>";
echo $cartItem->getFinalPrice()."<br>";
echo $cartItem->getRegularPrice()."<br>";
echo $cartItem['regularprice']."<br>"; //This is my attribute values.I want to apply this value instead of final price.
}
}
}
?>
或者是否可以改变特殊价格的计算方式。如果是,我需要覆盖哪个文件。
答案 0 :(得分:2)
可以相对简单地完成。首先,您需要扩展产品视图块并添加一个功能,以检查是否需要在产品页面上显示自定义价格。或者,创建一个可以将产品对象传递到的辅助函数。然后,您可以在view.phtml模板中使用此功能,以便相应地显示自定义价格。
如果你想让它显示正常价格(即替换它)你需要修改你的price.phtml文件进行检查并显示自定义属性作为价格(price.phtml是一个复杂的文件,但看看它是如何特价的。)
要更改添加到购物篮的价格,您只需为checkout_cart_product_add_after
事件创建一个事件观察者。您可以在此处访问报价项目,并且可以执行支票(即,是否有特价)并使用
$product = Mage::getModel('catalog/product')->load( $cartItem->getProductId() );
$cartItem->setOriginalCustomPrice($product->getRegularprice());
答案 1 :(得分:0)
您只能添加一个特价。 如果你想用另一个属性做这个,那么你必须重写价格指数。
但您可以创建“目录产品规则”,并使用产品的sku作为参考。