2012-10-08 3 views
0

У меня есть модуль (не созданный мной), который подбирает цитату и применяет скидку, если определенные критерии выполнены. Это отлично работает. Правила корзины также отлично работают.Magento Order, в котором модули влияют на цитату

Тем не менее, мне нужно, чтобы пользовательский модуль применял соответствующие скидки до того, как применяются правила корзины Magento (общая цена). Поскольку это означает, что Magento применяются сначала, а затем пользовательские, что приводит к скидки Magento, когда их не должно быть.

Что контролирует порядок модулей, и таким образом, как бы я указал другой порядок.

ответ

2

Magento имеет функциональность collectTotals (я считаю, что это реализация композитного рисунка). Что он в основном делает - это адрес каждого из указанных Итоговых коллекционеров по порядку и называется метод collect().

Скорее всего, суммарный коллектор для вашего модуля вызывается после SalesRule один (который имеет код скидка). Итак, что вам нужно сделать: откройте файл конфигурации config.xml настраиваемого модуля скидок, найдите xpath config/global/sales/quote/итоги/[псевдоним модуля] и добавьте (или измените, если он существует) директиву <before>discount</before>

Таким образом, вы заказываете общий сборщик настраиваемого модуля для применения скидок до SalesRule.

+0

Спасибо за ответ, не было никакой директивы 'before', поэтому я добавил один из них под классом, но, похоже, это, похоже, не имело никакого эффекта. Существует также «', не уверен, что это вообще актуально. –

+0

возможно, что описанный вами функционал выполнен в Observer. вы можете попробовать изменить '' на '' - поэтому логика пользовательского модуля будет применяться до процесса 'collectTotals', но возможно, что ваш объект _Quote_ не будет содержать даже промежуточный результат. –

+0

Ну, это странно; сделал изменение, которое вы предложили, но теперь получите 500 ошибок (исчерпана фатальная ошибка php) при добавлении в корзину или посещении непустой корзины. Есть ли какая-то другая информация, которую я мог бы предоставить, которая поможет ей прибить ее. Спасибо за ответы тоже, очень ценю это. –

Смежные вопросы