В настоящее время я внедряю плагин для управления запросами котировок в системе магазина magento. Идея состоит в том, что запрос связан с цитатой, и кто-то в бэкэнде должен иметь возможность применять отдельные правила продаж для каждого элемента предложения.
Не было проблем с реализацией функциональности для создания и редактирования задействованных сущностей во внешнем интерфейсе. а также в бэкэнде. Но я' m не может применить определенное правило продаж к элементу цитаты и отобразить это правило в итоговой сумме строки, а также в промежуточной сумме предложения.
Мой текущий подход заключается в использовании sales_quote_address_discount_item
-Hook . Здесь я использую экземпляр класса, производного от Mage_SalesRule_Model_Validator
, который перегружает _getRules ()
-Method дает соответствующие Mage_SalesRule_Model_Rule
. Соответствующий код наблюдателя событий выглядит так:
$quote_item = $event->getItem();
$request_item = $this->helper->getRequestItemByQuoteItemId($quote_item->getItemId());
if (! $this->isRelevantRequestItem($request_item))
return $this;
$validator = Mage::getModel("requestquotation/request_validator")
->addRule($request_item->getRule());
$validator->process($quote_item);
Когда я перехожу с отладчиком через process ()
-Method, предоставленное мной правило работает и применяется к элементу цитаты. Но дальнейшие действия collectTotals ()
по котировке и $ quote_item-> save ()
не влияют на итоговые значения строк и промежуточные итоги цитаты.
Есть ли какая-либо документация или пример того, как добавить правило продаж (лучше, на мой взгляд, поскольку оно отслеживается) или скидку вручную, программно в элемент цитаты и / или в само предложение.
Спасибо заранее и с наилучшими пожеланиями!
Иоахим