Как программно применить правило продаж magento к элементу цитаты

В настоящее время я внедряю плагин для управления запросами котировок в системе магазина 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 () не влияют на итоговые значения строк и промежуточные итоги цитаты.

Есть ли какая-либо документация или пример того, как добавить правило продаж (лучше, на мой взгляд, поскольку оно отслеживается) или скидку вручную, программно в элемент цитаты и / или в само предложение.

Спасибо заранее и с наилучшими пожеланиями!

Иоахим

5
задан Joachim Rosskopf 10 May 2011 в 04:43
поделиться