Получите сумму скидки для группы клиентов в magento


У меня есть идентификатор группы клиентов .
Мне нужно получить правило продаж для этой группы клиентов .
И после этого я хочу получить сумму скидки в % для этого правила продаж ;

$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();


И по $group_id мне нужно найти фактические скидки

Большое спасибо!

Author: sv3n, 2017-06-12

1 answers

Пожалуйста, попробуйте этот код:

$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

Редактировать: чтобы получить все правила, вы можете попробовать это (еще не проверено)

$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
}
 1
Author: sv3n, 2017-06-13 20:38:33