我有一个不同客户群的商店。所有客户都对所有产品都有特定折扣。假设客户群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);
}
我如何实现这一目标请帮助
答案 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 );
}