通过SOAP API从订单创建发票
问题描述:
在使用soap api与magento对话时遇到问题,导致无法通过订单创建发票。问题出在我的工具的sales_order_invoice.create调用中。当我调用这个调用中传递的参数之一是产品ID和要发票的数量时,格式化为嵌套数组。出于某种原因,无论我如何将这些数据发送给magento,magento都将按照订单上显示的金额创建发票,但它不会将任何产品添加到发票页面。它就像完全忽略了itemQtys数组。另外我不知道如果我可以改变我想要发票的数量。通过SOAP API从订单创建发票
举个例子想象,客户下订单了一定数量的产品,但我们只手头上有一定的数量。我想为我们现有的号码开具发票并发运该发票,然后在稍后的日期向其余的发票开具发票。这当然需要全部“以编程方式”完成。这可能是通过SOAP API来完成的吗?或在magento时期?
谢谢。
答
if(!$order->getId()){
return;
}
try {
if(!$order->canInvoice())
{
Mage::throwException(Mage::helper('core')->__('Cannot create an invoice.'));
}
$invoice = Mage::getModel('sales/service_order', $order)->prepareInvoice();
if (!$invoice->getTotalQty()) {
Mage::throwException(Mage::helper('core')->__('Cannot create an invoice without products.'));
}
$invoice->setRequestedCaptureCase(Mage_Sales_Model_Order_Invoice::CAPTURE_OFFLINE);
$invoice->register();
$transactionSave = Mage::getModel('core/resource_transaction')
->addObject($invoice)
->addObject($invoice->getOrder());
$transactionSave->save();
}
catch (Mage_Core_Exception $e) {
}
你可以从上面的代码有一些想法。
你是否得到了解决方案???, –