Global API
...
Request
Purchase Order
Update
1min
The following is an example of update Purchase Order. The QuickBooks Purchase Order Id (id), Vendor Reference Id (VendorRef) and Sync Token (SyncToken) are required to update the Purchase Order (See Purchase Order for the available fields).
Note: You can only create one record at a time.
Request
Response
// Create a Map to store all the data of a Purchase Order
Map<String, Object> purchaseOrderMap = new Map<String, Object>();
List<Object> lineItemList = new List<Object>();
List<Object> purchaseOrderList = new List<Object>();
// Assign value of Opportunity to QuickBook PurchaseOrder
purchaseOrderMap.put('TxnDate','2024-04-26');
purchaseOrderMap.put('DueDate','2024-05-26');
purchaseOrderMap.put('Id','193');
purchaseOrderMap.put('SyncToken','0');
purchaseOrderMap.put('PurchaseOrderEmail' , new Map<String, Object>{'EmailAddress' =>'[email protected]'});
purchaseOrderMap.put('VendorRef' , new Map<String, Object>{'value' => '83' });
purchaseOrderMap.put('PrivateNote' , 'updated');
// Assign value of OpportunityLineItem to QuickBook PurchaseOrder
Map<String, Object> lineItemMap = new Map<String, Object>();
Map<String, Object> salesLineItemDetailMap = new Map<String, Object>();
lineItemMap.put('Description','Updated');
lineItemMap.put('DetailType','ItemBasedExpenseLineDetail');
lineItemMap.put('Amount',100);
salesLineItemDetailMap.put('ItemRef' , new Map<String, Object>{'value' => '19' });
salesLineItemDetailMap.put('Qty','10');
salesLineItemDetailMap.put('UnitPrice','10');
if(lineItemMap.get('DetailType') == 'SalesItemLineDetail'){
lineItemMap.put('SalesItemLineDetail',salesLineItemDetailMap);
}else if(lineItemMap.get('DetailType') == 'ItemBasedExpenseLineDetail'){
lineItemMap.put('ItemBasedExpenseLineDetail',salesLineItemDetailMap);
}
lineItemList.add(lineItemMap);
// Adding the Line Items to QuickBook PurchaseOrder
purchaseOrderMap.put('Line',lineItemList);
purchaseOrderList.add(purchaseOrderMap);
Map<String, Object> reqJSONMap = new Map<String, Object>();
reqJSONMap.put('PurchaseOrder' , purchaseOrderList);
String reqJSON = JSON.serialize(reqJSONMap);
Map<String, Object> finalReqMap = new Map<String, Object>();
Map<String,Object> reqOptions = new Map<String,Object>();
finalReqMap.put('options' , reqOptions);
finalReqMap.put('version' , '1.0');
finalReqMap.put('action' , 'updatePurchaseOrder');
finalReqMap.put('RequestJSON' , reqJSON);
// Required, if QuickBooks Multi-Org is enabled in Breadwinner.
finalReqMap.put('qbOrgId' , '4620816365285051610');
finalReqMap.put('skipDML' , false);
System.debug('Request ::: ' + finalReqMap);
Map<String, Object> respMap = breadwinner_qbo.BreadwinnerQBAPI.call(finalReqMap);
System.debug('Response ::: ' + respMap);