В настоящее время я внедряю плагин для управления запросами предложений в системе магазина magento. Идея заключается в том, что запрос связан с предложением, и кто-то в бэкэнде должен иметь возможность применять индивидуальные правила продаж для каждого предложения.
Не было проблем с реализацией функциональных возможностей для создания и редактирования задействованных объектов на внешнем интерфейсе, а также на внутреннем интерфейсе. Но я не могу применить определенное правило продаж к позиции цитаты, и это правило отражено в итоговой строке, а также в подытоге цитаты.
Мой текущий подход заключается в использовании sales_quote_address_discount_item
-Крюка. Там я использую экземпляр класса, производный от Mage_SalesRule_Model_Validator
, который перегружен _getRules()
- Метод дает соответствующие 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()
-Metod, мое правило работает и применяется к элементу цитаты. Но дальнейшие collectTotals()
в кавычке и $quote_item->save()
не влияют на итоговые итоги строки и промежуточный итог цитаты.
Есть ли какая-либо документация или пример, как добавить правило продаж (лучше, на мой взгляд, так как оно отслеживается) или скидку вручную, программно к элементу цитаты и / или к самой цитате.
Спасибо заранее и наилучшими пожеланиями!
Joachim