Каталог 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()

Есть идеи по достижению трудного ?

Author: Raul Sanchez, 2018-11-15

1 answers

Я публикую наше решение через несколько рабочих дней

Этот модуль устанавливает новый атрибут для правил каталога (price_source, который является селектором price/special_price)

Затем мы переписываем необходимые классы, чтобы добавить значения special_price при расчете цены при применении каталога

 1
Author: Raul Sanchez, 2018-12-17 12:17:42