我为某些客户群制定了多个目录价格规则。以登录客户的身份查看产品时,价格会正确显示。我想创建一个库存文件,我可以发送给具有此折扣价格的客户。我该怎么做?
我尝试了什么:
在获取产品系列之前为客户(使用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();
}
答案 0 :(得分:0)
你检查了方法头吗? public function login($username, $password)
。您不能将login()与customerId一起使用。
但是有:
Mage::getSingleton('customer/session')->loginById($customerId);