1

I have customer group id.
I need to get sales rule for this customer group.
And after that I want to get discount amount in % for this sales rule;

$customer_from_session = Mage::getSingleton('customer/session')->getCustomer();
$customer_from_db = Mage::getModel('customer/customer')->load($customer_from_session->getId());
$group_id = $customer_from_db->getGroupId();


And by $group_id I need to find actual discounts

Much thanks!

4
  • Just as a not ... you can get the customer group ID with Mage::getSingleton('customer/session')->getCustomerGroupId() – sv3n Jun 12 '17 at 20:47
  • Do you want to get the discount amount for a single rule? – sv3n Jun 12 '17 at 20:54
  • @sv3n yes, I want to get single sales rule applied to this customer group and discount amount for this rule – Kyrylo Romantsov Jun 13 '17 at 5:55
  • Please let me know if the code from below works for you :) – sv3n Jun 13 '17 at 11:52
1

Please try this code:

$websiteId  = Mage::app()->getWebsite()->getId();
$groupId    = Mage::getSingleton('customer/session')->getCustomerGroupId();
$ruleName   = /* your rule name */;

$rules = Mage::getResourceModel('salesrule/rule_collection')
    ->setValidationFilter($websiteId, $groupId);
$rules->addFieldToFilter('name', $ruleName);
$rules->getSelect()->limit(1);

$rule = $rules->getFirstItem();

echo $rule->getSimpleAction(); // by percent ...
echo $rule->getDiscountAmount(); // amount

Edit: to get all rules you can try this (not tested yet)

$websiteId  = Mage::app()->getWebsite()->getId();
$groupId    = Mage::getSingleton('customer/session')->getCustomerGroupId();

$rules = Mage::getResourceModel('salesrule/rule_collection')
    ->setValidationFilter($websiteId, $groupId);

foreach ($rules->getItems() as $rule) {
    echo $rule->getSimpleAction(); // by percent ...
    echo $rule->getDiscountAmount(); // amount
}
8
  • What to do if I want to get all rules ? – Kyrylo Romantsov Jun 13 '17 at 19:25
  • See updated answer. – sv3n Jun 13 '17 at 20:27
  • $rules->getItems() works – Kyrylo Romantsov Jun 13 '17 at 20:36
  • Do you know how to make smth like this for catalog rules ? – Kyrylo Romantsov Jun 13 '17 at 20:37
  • 1:.) update code for getItems ... if this isn't correct please suggest an edit. 2) catalogrule has bit different behavior ... if you need this, please post another question. – sv3n Jun 13 '17 at 20:40

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.