Magento – How to get cart price rule collection in magento 2

catalogcatalog-price-rulesmagento2.2.4price-rulesshopping-cart-price-rules

I want to show cart price rule on product page. How to get collection of cart price rules?

Best Answer

try this way.. this code working for me

$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
$product_discamt = 0;
$objrules = $objectManager->create('Magento\SalesRule\Model\RuleFactory')->create();
$rules = $objrules->getCollection();
foreach ($rules as $tmprule) {
          $rule = $objectManager->create('Magento\SalesRule\Model\Rule')->load($tmprule->getId());
          $product = $objectManager->get('Magento\Catalog\Model\Product')->load($_product->getId());
          $item = $objectManager->create('Magento\Catalog\Model\Product');
          $item->setProduct($product);                                
          if ($rule->getActions()->validate($item) && $rule->getIsActive()) {
              $product_discamt=$rule->getDiscountAmount();
          }
  }

  if($product_discamt>0){?>

  <span class="cart-rule">-<?php echo round($product_discamt);?><span class="cart-rule-percentage">%</span></span>
</div>
}?>
Related Topic