Magento: заказ имеет счет-фактуру (сгенерирован), но «Total due»> 0

У меня есть живой веб-магазин Magento 1.5.0.1 со следующей проблемой:

Мы получили заказ, который был оплачен через iDEAL (голландский онлайн-сервис платежей), а счет-фактура был сгенерирован автоматически при успешном платеже. Мы также получили сумму на нашем банковском счете.

Единственное, что мы не можем выполнить заказ, потому что поле «Total due» должно быть больше 0 (ноль). Это должно быть ошибкой в ​​нашем iDEAL-модуле (который будет рассмотрен в другой момент).

Есть ли способ «заставить» этот конкретный порядок быть «полным», если поле «Итого» задано равным 0?

Очевидно, что примеры PHP-кода для этого очень приветствуются (я сам программист).

Это может вам помочь.

Пример из одного из наших модулей:

$order = Mage::getModel('sales/order')->loadByIncrementId($incrementId); if ($order->getTotalPaid() == 0) { $invoice = $order->prepareInvoice(); $invoice->register()->capture(); Mage::getModel('core/resource_transaction') ->addObject($invoice) ->addObject($invoice->getOrder()) ->save(); $order->save(); 

Это проверяет, не был ли платеж еще не зарегистрирован (пользователь может отправить несколько успешных запросов с помощью множественного нажатия), затем создает счет, регистрирует его, фиксирует и сохраняет счета и заказы.

ИЗМЕНИТЬ 1

 private function markOrderPayd($incrementId, $status) { $order = Mage::getModel('sales/order')->loadByIncrementId($incrementId); if ($order->getTotalPaid() == 0) { ... $order->save(); $invoice = $order->prepareInvoice(); $invoice->register()->capture(); ... Mage::getModel('core/resource_transaction') ->addObject($invoice) ->addObject($invoice->getOrder()) ->save(); $order->save(); ... } else { ... $order->save(); } } - private function markOrderPayd($incrementId, $status) { $order = Mage::getModel('sales/order')->loadByIncrementId($incrementId); if ($order->getTotalPaid() == 0) { ... $order->save(); $invoice = $order->prepareInvoice(); $invoice->register()->capture(); ... Mage::getModel('core/resource_transaction') ->addObject($invoice) ->addObject($invoice->getOrder()) ->save(); $order->save(); ... } else { ... $order->save(); } } 

Я думаю, у вас нет чек, поэтому генерируются 2 счета-фактуры.