2012-07-31 51 views
1

我想在magento商店中使用magento api在php中創建發票。爲此,我想爲特定數量和項目創建發票意味着如果任何人想要以特定數量發票一個項目,那麼它應該是我的代碼適用於array()或全部數量。 下面是創建發票使用magento api獲取Order_Item_Id

$client = new Zend_XmlRpc_Client('http://127.0.0.1:8080/AndroidMagento/api/xmlrpc') 
$session = $client->call('login', array('tester','tester')); 
$saleorderno = '100000007'; 

Mage::init(); 
$order = Mage::getModel('sales/order')->load($saleorderno); 
$orderItems = $order->getAllItems(); 
$invoiceItems = array(); 


foreach ($orderItems as $_eachItem) { 
$invoiceItems[$_eachItem->getItemId()] = $_eachItem->getQtyOrdered(); 
} 

$result = $client->call('call',array($session,'sales_order_invoice.create',array($saleorderno,array('order_item_id' => 9474, 'qty' => 1),'Invoice Created by Test',false,false))); 

僞代碼,我已經看到了這link在那裏我發現有些想法,但我不明白exactly.I無法理解如何獲得值ORDER_ITEM_ID。???
任何想法???請提前告知我提前致謝...

回答

1

item_id和product_id是不同的id。

訂單或報價有item_id和product_id。

你可以試試這個:

$order = Mage::getModel('sales/order')->load($saleorderno); 
$orderItems = $order->getAllItems(); 

foreach ($orderItems as $item){ 
     print_r($item->getData()); 
     print_r($item->getItemId()); //magic function to get ['item_id'] 
} 

您可以在 '銷售/報價' 模式做到這一點。

乾杯^^

+2

感謝使用這個reply.But我會得到ITEM_ID不ORDER_ITEM_ID和這兩個是different.I必須通過ORDER_ITEM_ID與Magento的API的create_invoice方法的價值。 – krushnakant 2012-08-03 05:44:08

0

試試這個,

echo "<pre>"; 
$result = $client->call($session, 'sales_order.info', 'orderIncrementId'); 
print_r($result['item_id']); 
print_r($result['product_id']); 

和$結果將返回的順序排列的所有信息,包括ITEM​​_ID和PRODUCT_ID,

用$結果[ 'ITEM_ID']你可以通過它來致電

sales_order_invoice.create

然後做

$result = $client->call(
    $session, 
    'sales_order_invoice.create', 
    array('orderIncrementId' => '200000008', 
     array('order_item_id' => $result['item_id'], 
       'qty'   => $result['total_qty_ordered']) 
    ) 
); 

數量,你必須從$得到它的結果[ 'total_qty_ordered']

首先,嘗試print_r[$result];然後你會得到一些來自它的提示。

^^

+2

感謝您的答覆。我已經嘗試通過傳遞item_id建議您返回我invoice_incrementid.But發票不支付金額在magento商店創建。可能是item_id和order_item_id是不同的,因爲我已經看到http:// www.magentocommerce.com/api/soap/sales/salesOrderInvoice/sales_order_invoice.info.html – krushnakant 2012-08-06 05:57:11

+0

sales_order.info將返回一個項目數組(salesOrderItemEntity Array)。您需要遍歷訂單中每個項目的結果中的所有項目以獲取'item_id',它是一個order_item_id它是訂單項目列表的關鍵字,與product_id不同該項目的關鍵。 http://www.magentocommerce.com/api/soap/sales/salesOrder/sales_order.info.html – mttjohnson 2012-08-15 15:55:04

+2

Thanks.But我在http:// stackoverflow上做了同樣的事情。com/questions/11499043/create-invoice-method-is-not-working-properly-of-magento-api in android but it does not work – krushnakant 2012-08-17 04:26:38