Magento以编程方式创建部分发票

Nik*_*K_R 7 invoice magento

从特定订单我想为该订单中的某些选定商品创建发票.

我已成功以编程方式为整个订单创建了发票,但我想创建该订单的部分发票.

Nik*_*K_R 12

我得到了它.
不得不挖magento得到这个.

$orderid // order id
$order = Mage::getModel('sales/order')->load($orderid);

or for order increment id 
$orderincrmentid // order increment id

$order = Mage::getModel('sales/order')->loadByIncrementId($orderincrmentid);


if($order->canInvoice()) {          
    $invoiceId = Mage::getModel('sales/order_invoice_api')
            ->create($order->getIncrementId(), $itemsarray ,'your_comment' ,1,1);
}
echo $invoiceId; // Gives increment Invoice id
Run Code Online (Sandbox Code Playgroud)

@parameters 以上创建功能:

第一个参数:订单增量ID

第二个参数:数组

// array format . [Main point]

   foreach($order->getAllItems() as $item) {
$item_id = $item->getItemId(); //order_item_id
$qty = $item->getQtyOrdered();   //qty ordered for that item
}

array('56'=>'3','57'=>'1','58'=>'0');

array([order_item_id] => [qty]); // general array format
Run Code Online (Sandbox Code Playgroud)

所以在这里你将添加订单商品ID作为关键,将其数量作为其值.
如果您不想创建特定项目的发票ID,则只需将其数量的值传递为0 // zero .

第三个参数:评论

第四个参数:发送邮件----> 1不发邮件----> 0

第五个参数:包括邮件评论----> 1不包括邮件评论----> 0

它返回发票增量ID.

希望它可以帮助某人.