Каталог Magento2 управляет акциями, возможностью выбора цены или специальной цены?
По умолчанию каталог рекламные акции применяются к полю цена . Изменение этого было одним из классических запросов в большинстве проектов Magento 1, которыми мы управляли
Одним из подходов может быть применение правил каталога рекламных акций к наименьшему значению цены & special_price, например, таким образом https://stackoverflow.com/questions/18120342/catalog-price-rules-applied-to-special-price
Лучший, более полный, подход может заключаться в выборе цены при редактировании правил каталога, чтобы пользователи-администраторы могли выбирать, какую цену они хотят применить для правила, которое они редактируют
В Magento2 я видел, что значение цены, похоже, извлекается в Magento\Каталог\Модель\Индексатор\ruleproductsselectbuilder::build() метод
$priceAttr = $this->eavConfig->getAttribute(\Magento\Catalog\Model\Product::ENTITY, 'price');
Это называется, среди прочего, в методе Magento\Catalogrule\Model\Indexer\reindexruleproductprice::execute(), который, по-видимому, нести ответственность за обновление цен правил каталога
Таким образом, простая часть (с использованием специальной цены вместо цены), по-видимому, может быть достигнута, просто переписав этот Метод Magento\Catalogrule\Model\Indexer\ruleproductsselectbuilder::build()
Есть идеи по достижению трудного ?
1 answers
Я публикую наше решение через несколько рабочих дней
Этот модуль устанавливает новый атрибут для правил каталога (price_source, который является селектором price/special_price)
Затем мы переписываем необходимые классы, чтобы добавить значения special_price при расчете цены при применении каталога