Magento:根据客户群获得产品价格

AKn*_*nox 4 php product rule magento magento-1.7

在magento 1.7上,我为"特殊会员"客户群创建了20%折扣的促销价格规则.

我想显示两个价格.我以为会有类似的东西

$_product->getPriceByCustomerGroup( $groupId );
Run Code Online (Sandbox Code Playgroud)

目标

(未登录):

  • 正常价格:10.99美元
  • 会员价:5.99美元

(会员登录):

  • 正常价格:10.99美元
  • 会员价:5.99美元

CCB*_*urn 6

好吧,周围的一点点,但我想我有它.

您可以通过调用产品的setCustomerGroupId来获取特定组ID的价格(在下面的情况下为3).唯一需要注意的是,一旦调用了setCustomerGroupId函数,就无法将客户组ID设置为不同的组并获得该组的价格 - 它将价格设置一次然后不会覆盖它.

在下面的示例中,对于除组ID 3之外的所有组,我有一个正常价格为399.99美元的产品.对于组ID 3,我有一个目录价格规则设置为20%的折扣.

如果我运行下面的代码,我得到:

product A: 399.99
product B (group id 3): 319.9900
product B (group id 0): 319.9900
Run Code Online (Sandbox Code Playgroud)

请注意我第二次设置客户群时它不会改变价格

$_productA = $this->getProduct();

$_productB = Mage::getModel('catalog/product')->load($_productA->getId());  
$_productB->setCustomerGroupId(3);

echo 'product A: '.$_productA->getFinalPrice().'<br/>';
echo 'product B (group id 3): '.$_productB->getFinalPrice().'<br/>';

$_productB->setCustomerGroupId(0);

echo 'product B (group id 0): '.$_productB->getFinalPrice().'<br/>';
Run Code Online (Sandbox Code Playgroud)

第二次幸运:)


AKn*_*nox 6

在黑客入侵一段时间后,我已经完成了自己的愿望

$now = Mage::getSingleton('core/date')->timestamp( time() );
$websiteId = Mage::app()->getStore()->getWebsiteId();
$customerGroup = 4;

Mage::getResourceModel('catalogrule/rule')->getRulePrice( $now, $websiteId, $customerGroup, $_productId);
Run Code Online (Sandbox Code Playgroud)