我正在尝试在自定义模块中实现一个简单的观察者,以在加载产品库存时更新它。
这是xml文件的内容:
<?xml version="1.0"?>
<config>
<modules>
<Foo_Bar>
<version>0.1</version>
</Foo_Bar>
</modules>
<global>
<models>
<updatestock>
<class>Foo_Bar_Model</class>
</updatestock>
</models>
<events>
<catalog_product_load_before>
<observers>
<Foo_Bar>
<type>model</type>
<class>updatestock/observer</class>
<method>updatestock</method>
</Foo_Bar>
</observers>
</catalog_product_load_before>
</events>
</global>
</config>
以下是观察者模型的内容:
class Foo_Bar_Model_Observer extends Mage_Core_Model_Abstract {
public function updatestock($observer) {
$product = $observer->getProduct();
$product->setQty(555);
$product->save();
}
}
问题是 Stock 没有保存;有什么办法可以解决这个问题?
感谢帮助。
编辑:
我认为问题来自:
<catalog_product_load_before>
该产品尚未加载,我得到一个 404 Not found 页面,但是当我将其替换为:
<catalog_product_load_after>
产品库存已正确更新,但当产品库存可用性为“缺货”且库存为 0 时;前端中的“可用性”始终为“缺货”,并且“添加到购物车按钮”被隐藏(这意味着加载的库存为 0)。
我尝试过使用“ <catalog_product_load_before>
”,但在这种情况下,我无法获得产品 ID 或 SKU。
感谢帮助