到处显示实时折扣价格

时间:2013-11-29 11:31:56

标签: magento

我有一个不同客户群的商店。所有客户都对所有产品都有特定折扣。假设客户群A有10个客户,折扣也是所有产品的10%。折扣由我的一个API网站决定,因此它是不同客户群的实时折扣当客户登录属于客户群A时,他/她能够看到每个地方10%折扣的价格(产品列表,产品视图,并且整个检查过程。)

我可以通过调用以下代码来实现这一点,但它只显示在购物车页面而不是每个地方。

checkout_cart_product_add_after

观察员功能

$item = $observer->getQuoteItem();
 $product = $observer->getProduct();
 $price = $product->getPrice();
 //print_r($item->toArray());exit;
 // Discounted 25% off
 $percentDiscount = 0.25;

 // This makes sure the discount isn't applied over and over when refreshing
 $specialPrice = $product->getPrice() - ($product->getPrice() * $percentDiscount);
 // Make sure we don't have a negative
 if($specialPrice>0){
    $item->setCustomPrice($specialPrice);
    $item->setOriginalCustomPrice($specialPrice);
    $item->getProduct()->setIsSuperMode(true);
    }

我如何实现这一目标请帮助

1 个答案:

答案 0 :(得分:1)

通过使用事件观察器,您可以实现产品列表页面的产品价格折扣:

<catalog_product_collection_load_after>
    <observers>
        <Your_Module_Observer>
            <type>model</type>
            <class>your_module/Observer/class>
            <method>modifyPrices</method>
        </Your_Module_Observer>
    </observers>
</catalog_product_collection_load_after>

$products = $observer->getCollection();
foreach( $products as $product )
{
    $product->setPrice( $myCustomPrice );
}