0

新しい Web ストアのセットアップに使用するデータ インストール スクリプトを作成しようとしています。このスクリプトは、特定のショップのカテゴリ、ページ、静的ブロック、およびデフォルト設定を作成します (ショップをホストするためにマルチストア設定を使用します)。私たちの開発/ステージング セットアップでは、このスクリプトは問題なく動作し、すべてのカテゴリが問題なくビルドされます。しかし、ライブ システムでは、このスクリプトは失敗します。いくつかのデバッグの後、違いはライブ システムでのフラット カタログの使用にあることがわかりました。

フラット テーブルを有効にしてカテゴリを作成する際の問題は、指定された parentId に基づいて親パス情報を取得することです。

$parentCategory = Mage::getModel('catalog/category')->load($parentId);

フラット カテゴリを有効にしないと、これは正しいparentCategory を提供しますが、フラット カテゴリを有効にすると、空のオブジェクトが提供されます。

フラット カテゴリが有効な場合にこの動作が発生するのはなぜですか?

4

1 に答える 1

0

この動作は、カテゴリを作成した後にフラット テーブルが再構築されないことが原因である可能性があります。$parentCategory を取得する前に、プログラムでインデックスを更新してみてください。

于 2012-09-23T15:36:36.007 に答える