特定の顧客グループに対していくつかのカタログ価格ルールがあります。ログインした顧客として製品を表示すると、価格が正しく表示されます。この割引価格の顧客に送信できる在庫ファイルを作成したいと考えています。どうすればいいのですか?
私が試したこと:
製品コレクションを取得する前に( で) 顧客のセッションを開始しました
Mage::getSingleton('customer/session')->loginById($customerId)が、 には影響がないようです$product->getFinalPrice()。編集:また、セッションから顧客グループ ID をエコーすることにより、セッションが正しく機能していることを確認したことも言う必要があります。
sales/quoteその顧客向けに作成された製品に製品を追加し、価格を引き下げましたが、quote_itemそれも機能しませんでした。追跡
Mage_Catalog_Model_Product::getFinalPrice()したところ、2 つのイベント オブザーバーMage_CatalogRule_Model_Observer::processFrontFinalPrice()とprocessAdminFinalPrice(). 製品に顧客グループIDを設定できるはずなので、それも試してみました...うまくいきません。顧客グループ ID を決定するロジックをprocessFrontFinalPrice()以下に示します。if ($observer->hasCustomerGroupId()) { $gId = $observer->getEvent()->getCustomerGroupId(); } elseif ($product->hasCustomerGroupId()) { $gId = $product->getCustomerGroupId(); } else { $gId = Mage::getSingleton('customer/session')->getCustomerGroupId(); }