2013-01-21 8 views
7

私はMagento認定試験を受けています。Magentoのインデックステーブルから製品の価格をどのような状況で読み取るかを判断しようとしています。
私はMagentoの方法の流れに従うようにしていますが、私はいくつかのウサギの道をたどり着いてしまいました。
誰でも過去のどの時点でそれを見つけたのでしょうか?Magentoのインデックステーブルから製品の価格がどのような状況で読み取られますか?

答えて

10

商品の価格は、商品コレクションを使用しているとき、つまり一度に複数の商品を扱っているときにのみインデックステーブルから読み取られます。 たとえば、製品のビューページで単一の製品を入手すると、価格はオンザフライで生成されます。

そして、いくつかのコードの参照となりました説明:

あなたがMage_Catalog_Model_Productを考えるとき、あなたはターンで$this->getPriceModel()->getFinalPrice($qty, $this); を呼び出すgetFinalPrice()方法は、デフォルトの価格モデル(Mage_Catalog_Model_Product_Type_Priceは)メソッドで価格を計算していることがわかりますgetFinalPrice()また、価格を調整するために、いくつかのモジュールで使用されているイベントcatalog_product_get_final_price(カタログやカートの価格ルールだと思う)を起動します。このメソッドは、「オンザフライ」なので、インデックスは不要です。

コレクション(Mage_Catalog_Model_Resource_Product_Collection)では、価格インデクサは、各製品の価格を計算する複雑な手順を減らすために使用されます。 それは適切な索引フィールドにフィールドを割り当てるためにマップを定義:

​​

作業を行うインデクサクラスMage_Catalog_Model_Product_Indexer_Priceあります。

関連する問題