Get Catalog Rule information by Catalog rule id using Magento 2 with Catalog Rule Repository Interface.
You need to pass Rule id as an argument to get details of Catalog rule. Original Interface class is,
Magento\CatalogRule\Api\CatalogRuleRepositoryInterface
We have to use the get() method from the interface to fetch details of catalog rule information.
<?php namespace Jesadiya\CatlogRule\Model; use Psr\Log\LoggerInterface; use Magento\CatalogRule\Api\Data\RuleInterface; use Magento\CatalogRule\Api\CatalogRuleRepositoryInterface; class CatalogRuleById { /** * @var CatalogRuleRepositoryInterface */ private $catalogRuleRepository; public function __construct( CatalogRuleRepositoryInterface $catalogRuleRepository, LoggerInterface $logger ) { $this->catalogRuleRepository = $catalogRuleRepository; $this->logger = $logger; } /** * Gets catalog rule by id * * @param int $ruleId * * @return RuleInterface|null */ public function getRule(int $ruleId): ?RuleInterface { try { $rule = $this->catalogRuleRepository->get($ruleId); } catch (NoSuchEntityException $exception) { $this->logger($exception->getMessage()); $rule = null; } return $rule; }
If you want to get catalog rule details of Id 1, You need to call method $this->getRule(1);
If your system has catalog rule with id 1 is available, the result will be a display of catalog data.