Проблема с промежуточным итогом счета и общим итогом


Я произвел пользовательский расчет, чтобы изменить цену товара на странице корзины.

Тип продукта - комплект. И тип цены на пакет продуктов является динамическим.

Расчет работает нормально, мой пользовательский расчет отображается в информации о заказе, но когда я создаю счет-фактуру из заказа, мой пользовательский расчет не вступает в силу в общем и промежуточном итогах счета-фактуры.

Я знаю, что тип цены пакета продуктов является динамическим, поэтому, когда для создания счета-фактуры вызывается метод prepareInvoice, он называется $invoice->collectTotals(); и этот метод дополнительно пересчитывает соответствующую цену продукта, поэтому мой пользовательский расчет не вступает в силу. Так каково же решение для этого???

Author: Mufaddal, 2013-09-11

1 answers

В счете-фактуре используется другой набор итоговых моделей (такой же, как creditmemo).
Вот ход процесса:

Mage_Sales_Model_Order_Invoice::collectTotals() звонки $this->getConfig()->getTotalModels()

Рассматриваемая модель конфигурации Mage::getSingleton('sales/order_invoice_config'), которая инициализируется с помощью ветви конфигурации 'global/sales/order_invoice'.

Вот общие модели, которые getTotalModels() вернутся в этом случае:

  • sales/order_invoice_total_subtotal
  • sales/order_invoice_total_discount
  • sales/order_invoice_total_shipping
  • sales/order_invoice_total_tax
  • sales/order_invoice_total_grand
  • sales/order_invoice_total_cost

Они настроены в Mage/Sales/etc/config.xml файл в ветке, упомянутой выше. Для пакетов не существует дополнительной общей модели.

Таким образом, чтобы добавить свой собственный расчет, вам также потребуется добавить пользовательскую итоговую модель счета-фактуры или переписать одну из существующих, соответствующую тому, как вы реализовали свое изменение для итоговых моделей котировок.
Вероятно, вы также захотите сделать то же самое для моделей creditmemo total, которые работают так же, как и модели счетов-фактур.

 4
Author: Vinai, 2013-09-11 08:36:22