0
私は請求書をプログラムで作成しています。 Fishbowlの在庫を使用しているので、Magentoの注文に対する出荷を直接生成します。したがって、私は請求書を自動的に作成しています。ここでは請求書は正常に作成されましたが、注文合計は請求書の金額に基づいて更新されません。Magento請求書をプログラムで作成した後に注文が更新されない
ここでは、郵送物から請求書を作成するためのコードです。私はこの機能をsales_order_shipment_save_afterイベントで使用しており、注文の支払い方法として購入注文を使用しているため、請求書の取り込みはありません。
少し遅れpublic function autoInvoiceGenerate(Varien_Event_Observer $observer){
$shipment = $observer->getEvent()->getShipment();
$shipment = Mage::getModel('sales/order_shipment')->loadByIncrementId($shipment->getIncrementId());
$shippedItems = $shipment->getAllItems();
$order = $shipment->getOrder();
$order = Mage::getModel('sales/order')->load($order->getId());
try{
if(!$order->canInvoice()) {
//$order->addStatusHistoryComment('Order cannot be invoiced.', false);
//$order->save();
return $this;
}
$invoiceQtys = array();
foreach($shippedItems as $item){
$invoiceQtys[$item->getOrderItemId()] = $item->getQty();
}
if(empty($invoiceQtys)){
return $this;
}
//START Handle Invoice
$invoice = Mage::getModel('sales/service_order', $order)->prepareInvoice($invoiceQtys);
$invoice->setRequestedCaptureCase(Mage_Sales_Model_Order_Invoice::CAPTURE_OFFLINE);
$invoice->register();
$invoice->getOrder()->setCustomerNoteNotify(false);
$invoice->getOrder()->setIsInProcess(true);
$invoice->sendEmail(true, '');
$order->addStatusHistoryComment('Invoice created for shipment #'.$shipment->getData('increment_id').'.', false);
$transactionSave = Mage::getModel('core/resource_transaction')
->addObject($invoice)
->addObject($invoice->getOrder());
$transactionSave->save();
}
は.....試してみるとcatchブロックをあなたのコードを入れて、あなたはアイデアは、コードのいずれかの問題があり得ます。 –