我们可以使用价格类型属性在magento中添加多个特价吗?

时间:2014-01-06 12:11:50

标签: magento magento-1.7

我有定价价格的产品,如果我不为该产品提供特价,我想使用某些属性显示价格和特价以外的其他价格。

当用户将产品添加到购物车时,此新价格应该应用于产品。

如果可以,这可能是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.
            }           

    }
}   
?>

或者是否可以改变特殊价格的计算方式。如果是,我需要覆盖哪个文件。

2 个答案:

答案 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作为参考。