4

Magento 1.7 で、「特別メンバー」顧客グループに対して 20% 割引のプロモーション価格ルールを作成しました。

両方の価格を表示したいです。のようなものがあるだろうと思った

$_product->getPriceByCustomerGroup( $groupId );

ゴール

(ログインしていない):

  • 通常価格: $10.99
  • 会員価格: $5.99

(会員ログイン中):

  • 通常価格: $10.99
  • 会員価格: $5.99
4

6 に答える 6

6

しばらくハッキングした後、自分の願いを釣り上げました

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

Mage::getResourceModel('catalogrule/rule')->getRulePrice( $now, $websiteId, $customerGroup, $_productId);
于 2012-09-21T21:26:55.830 に答える
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

顧客グループを 2 回目に設定しても価格が変わらないことに注意してください

$_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/>';

2回目のラッキー:)

于 2012-09-09T23:29:31.723 に答える
2

別の解決策。グループ価格がメイン価格よりも小さくなる場合、関数 getGroupPrice はメイン価格を返します。

//get product
$product = Mage::getModel('catalog/product')->load($id);

//get group by code
$group = Mage::getModel('customer/group')->load($code, 'customer_group_code');

//get group price
$product->setCustomerGroupId($group->getId());
$price = $product->getGroupPrice();

//get main price
$product->setCustomerGroupId(null);
$price = $product->getPrice();
于 2016-03-04T14:00:48.597 に答える
1

これがあなたのやり方です。テスト済みで、動作しています。

<?php
$now = Mage::getSingleton('core/date')->timestamp( time() );
$websiteId = 1; // Choose your store # here
$customerGroup = 4;
$productId = 9369;
$rules = Mage::getResourceModel('catalogrule/rule');
echo $rules->getRulePrice($now, $websiteId, $customerGroup, $productId));
?>
于 2013-01-28T20:30:10.620 に答える