Magento产品getFinalPrice为客户提供自定义脚本

时间:2013-02-18 17:36:46

标签: php magento

我为某些客户群制定了多个目录价格规则。以登录客户的身份查看产品时,价格会正确显示。我想创建一个库存文件,我可以发送给具有此折扣价格的客户。我该怎么做?

我尝试了什么:

  • 在获取产品系列之前为客户(使用Mage::getSingleton('customer/session')->loginById($customerId))启动会话,但这似乎不会影响$product->getFinalPrice()

      

    编辑:我还应该说,我已通过回应会话中的客户组ID确认会话正常工作。

  • 将产品添加到为该客户创建的sales/quote,然后从quote_item获取价格,但这也不起作用。

  • 我关注了Mage_Catalog_Model_Product::getFinalPrice(),发现了两个事件观察者,Mage_CatalogRule_Model_Observer::processFrontFinalPrice()processAdminFinalPrice()。看起来我应该能够在产品上设置客户组ID,所以我也尝试过这样做......没有运气。在processFrontFinalPrice()中确定客户组ID的逻辑如下所示:

    if ($observer->hasCustomerGroupId()) {
        $gId = $observer->getEvent()->getCustomerGroupId();
    } elseif ($product->hasCustomerGroupId()) {
        $gId = $product->getCustomerGroupId();
    } else {
        $gId = Mage::getSingleton('customer/session')->getCustomerGroupId();
    }
    

1 个答案:

答案 0 :(得分:0)

你检查了方法头吗? public function login($username, $password)。您不能将login()与customerId一起使用。

但是有:

Mage::getSingleton('customer/session')->loginById($customerId);