Я хочу показать подробности правила каталога, такие как (Имя правила и Описание) на странице корзины.
Но я не получаю никаких методов для этого.
Я тоже пробовал getAppliedRuleIds()
метод над объектом продукта. Но ничего не получится в результате. Я думаю, что эти методы используются для правила корзины покупок.
Если вы знаете какие-либо методы для правила каталога. Пожалуйста, ответь на мой вопрос.
Вы можете попробовать следующий код получить эти детали. Я предполагаю, что идентификатор правила равен 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;
Вы можете получить применяемые правила продукта, используя метод ниже. Добавьте этот метод в
Приложение / код / ядро / 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;
}