我有一位观察员会更改产品清单和产品视图中的产品价格。要意识到我正在使用catalogProductLoadAfter和catalogProductCollectionLoadAfter事件。
public function catalogProductLoadAfter( $observer )
{
$product = $observer->getEvent()->getProduct();
$product->setPrice( 123.00 );
}
public function catalogProductCollectionLoadAfter( $observer )
{
$collection = $observer->getEvent()->getCollection();
foreach ($collection as $product)
{
$product->setPrice(123.00); // doesn't work
}
}
catalogProductLoadAfter $ product-> setPrice工作正常,但在catalogProductCollectionLoadAfter它什么都不做......没有错误,没有改变,没有。我错了什么噢?我有没有使用过的魔法,还是一个magento bug?
我曾经为一家拥有这样一位观察员的公司工作过,只有setProductLoadAfter setPrice,而不是catalogProductCollectionLoadAfter setPrice。
我正在使用Trego Design和简单可配置产品插件,它有一个AJAX产品更新程序。是否有可能存在冲突,也许trego插件或SCP插件也会覆盖价格?
//编辑:我搜索了任何setPrice使用,找不到任何可能产生冲突的内容..没有其他模块的外部动作
感谢您的帮助。
问候
答案 0 :(得分:1)
试试这个
public function catalogProductCollectionLoadAfter( $observer )
{
$collection = $observer->getEvent()->getCollection();
foreach ($collection as $product)
{
$product->setData('my_price','123.00');
}
}
您可以检索价格值,如下所示:
$product->getMyPrice();
或强>
$product->getData('my_price');