カスタムモジュールに単純なオブザーバーを実装して、ロード時に製品在庫を更新しようとしています。
これは、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();
}
}
問題は、在庫が保存されていないことです。これに対する解決策は何ですか?
手伝ってくれてありがとう。
編集:
問題は次のことから来ていると思います:
<catalog_product_load_before>
製品がまだロードされておらず、404 Not found ページが表示されますが、次のように置き換えると:
<catalog_product_load_after>
製品在庫は適切に更新されますが、製品在庫状況が「在庫なし」で在庫が 0 の場合。フロントエンドの「在庫状況」は常に「在庫切れ」であり、「カートに追加」ボタンは非表示になっています (これは、読み込まれた在庫が 0 であることを意味します)。
「 」を試してみまし<catalog_product_load_before>
たが、この場合、製品 ID も SKU も取得できません。
手伝ってくれてありがとう