применяйте правило продвижения по каталогу к уровневым ценам и специальным ценам в magento 2
Я хочу применить свое правило цены продвижения по каталогу и для товаров, имеющих цену уровня. Текущая функциональность magento проверяет только минимальное значение цены и отображает наименьшее из обоих, но мне также нужна сумма процентного правила, сниженная по цене уровня.
1 answers
Собственный magento не поддерживает применение правила продвижения каталога по уровневым ценам и специальным ценам, но мы можем добиться этого, расширив некоторые основные файлы в magento. Вы можете найти метод _applytierprice() в пути
\vendor\magento\module-catalog\Model\Product\Type\Price.php
protected function _applyTierPrice($product, $qty, $finalPrice)
{
if ($qty === null) {
return $finalPrice;
}
$tierPrice = $product->getTierPrice($qty);
if (is_numeric($tierPrice)) {
$finalPrice = min($finalPrice, $tierPrice);
}
return $finalPrice;
}
И в этом файле вы можете получить цену, применяемую в соответствии с правилом акции, в методе calculateprice() вокруг строки № 578, например, и проверить минимальное значение.
$rulePrice = $this->_ruleFactory->create()->getRulePrice($date, $wId, $gId, $productId);
Фабрика правил находится в конструкторе, подобном \Magento\CatalogRule\Model\ResourceModel
\Rulefactory $Rulefactory,`
Вы также можете сослаться на calcproductpricerule() в
vendor\magento\module-catalog-rule\Model\Rule.php
чтобы получить промо-цену товара, а затем сравнить значения, вы можете вернуть желаемое значение к конечной цене.