применяйте правило продвижения по каталогу к уровневым ценам и специальным ценам в magento 2


Я хочу применить свое правило цены продвижения по каталогу и для товаров, имеющих цену уровня. Текущая функциональность magento проверяет только минимальное значение цены и отображает наименьшее из обоих, но мне также нужна сумма процентного правила, сниженная по цене уровня.

Author: magento newbie, 2018-11-14

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 чтобы получить промо-цену товара, а затем сравнить значения, вы можете вернуть желаемое значение к конечной цене.

 2
Author: Bibhu Asish, 2018-12-03 07:55:36