Как получить CatalogRule Detail на странице корзины в Magento?

Я хочу показать подробности правила каталога, такие как (Имя правила и Описание) на странице корзины.

Но я не получаю никаких методов для этого.

Я тоже пробовал getAppliedRuleIds() метод над объектом продукта. Но ничего не получится в результате. Я думаю, что эти методы используются для правила корзины покупок.

Если вы знаете какие-либо методы для правила каталога. Пожалуйста, ответь на мой вопрос.

3

Решение

Вы можете попробовать следующий код получить эти детали. Я предполагаю, что идентификатор правила равен 1, который вы хотите получить

$rule = Mage::getModel('salesrule/rule')->load(1);
$rule->setWebsiteIds("1");
echo $rule->name;
echo $rule->description;

для правила каталога попробуйте код ниже

$rule = Mage::getModel('catalogrule/rule')->load(1);
$rule->setWebsiteIds("1");
echo $rule->name;
echo $rule->description;
0

Другие решения

Вы можете получить применяемые правила продукта, используя метод ниже. Добавьте этот метод в
Приложение / код / ​​ядро ​​/ Mage / CatalogRule / Модель / Rule.php.

Вы можете получить идентификатор примененного правила продукта, передав объект продукта.

$ruleid = Mage::getModel('catalogrule/rule')->getProductPriceRuleId(Mage::getModel('catalog/product')->load($product->getId()));

Как только вы получите ruleid, вы можете получить заголовок и описание, используя код Рам Шармы.

 $rule = Mage::getModel('catalogrule/rule')->load($ruleid);
$rule->setWebsiteIds("1");
echo $rule->name;
echo $rule->description;

Rule.php

public function getProductPriceRuleId(Mage_Catalog_Model_Product $product)
{
$priceRules = null;
$productId  = $product->getId();
$storeId    = $product->getStoreId();
$websiteId  = Mage::app()->getStore($storeId)->getWebsiteId();
if ($product->hasCustomerGroupId()) {
$customerGroupId = $product->getCustomerGroupId();
} else {
$customerGroupId = Mage::getSingleton('customer/session')->getCustomerGroupId();
}
$rulesData = $this->_getResource()->getRulesFromProduct($dateTs, $websiteId, $customerGroupId, $productId);

$dateTs     = Mage::app()->getLocale()->storeTimeStamp($storeId);
$cacheKey   = date('Y-m-d', $dateTs) . "|$websiteId|$customerGroupId|$productId|ruleid";
$rule_id = '';
if (!array_key_exists($cacheKey, self::$_priceRulesData)) {

$rulesData = $this->_getResource()->getRulesFromProduct($dateTs, $websiteId, $customerGroupId, $productId);
if ($rulesData) {
foreach ($rulesData as $ruleData) {
if ($product->getParentId()) {
$rule_id = $ruleData['rule_id'];
if ($ruleData['action_stop']) {
break;
}
} else {
$rule_id = $ruleData['rule_id'];
if ($ruleData['action_stop']) {
break;
}
}
}
return self::$_priceRulesData[$cacheKey] = $rule_id;
} else {
self::$_priceRulesData[$cacheKey] = null;
}
} else {
return self::$_priceRulesData[$cacheKey];
}
return null;
}
0

По вопросам рекламы [email protected]