0

特定の顧客グループに対していくつかのカタログ価格ルールがあります。ログインした顧客として製品を表示すると、価格が正しく表示されます。この割引価格の顧客に送信できる在庫ファイルを作成したいと考えています。どうすればいいのですか?

私が試したこと:

  • 製品コレクションを取得する前に( で) 顧客のセッションを開始しました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();
    }
    
4

1 に答える 1

0

メソッドヘッドを確認しましたか?public function login($username, $password). login() を customerId と共に使用することはできません。

しかし〜がある:

Mage::getSingleton('customer/session')->loginById($customerId);
于 2013-02-18T21:21:05.073 に答える