Похоже, что в Magento CE1.9 / EE1.13 есть ошибка «Остановить дальнейшую обработку правил», когда скидка предоставляется только на первый товар в вашей корзине.
Я ожидаю: если у меня есть несколько правил корзины покупок, каждое из которых имеет «Остановить дальнейшую обработку правил: да», будет применяться только первое из этих правил, однако оно будет применяться полностью ко всем соответствующим элементам для этого правила.
Что происходит: скидка распространяется только на первый товар в корзине, после чего обработка правила прекращается.
Смотрите скриншоты: скидка, которую я ожидаю на всю корзину, составляет 50 долларов, но из-за «Остановить дальнейшую обработку правил» я вижу только 25 долларов.
источник
Это было исправлено в более поздней версии Magento CE. В 1.9.2.1 вы можете найти решение, но оно могло быть исправлено раньше.
Исходный код выглядит так:
И фиксированный код должен быть:
Разница есть
$this->_stopFurtherRules = false;
иif ($this->_stopFurtherRules) {...}
Ничего больше.
Или, если вы на 1.9, вы можете просто заменить весь файл без опасности.
Надеюсь, это кому-нибудь поможет.
источник
Для всего, что нужно исправить, следует переопределить метод процесса для класса Mage_SalesRule_Model_Validator, как показано ниже
источник