This is the function to get the line item order/transaction from eBay if you give it the eBay Item ID as a parameter.
Why?
Mostly for debugging but here's the code that will quickly get the XML of a GetItemTransactions request to eBay.
How?
You'll need an access token for eBay which I documented on how you can generate one in my article: Zoho Creator: Push to eBay Listings. Then you can use the following code, note that the parameter is the eBay Item ID:
copyraw
	
void API.fn_eBayQuery_GetItemTransaction(int p_ItemID)
{
	/*
    Function: fn_eBayQuery_GetItemTransaction()
    Input: int p_ItemID (eBay Item ID)
    Purpose: Fetches a line item transaction per item ID
    Date Created:   2022-01-22 (Joellipman - Joel Lipman)
                    - Initial release
    More Info:
    - API Explorer Test Tool: https://developer.ebay.com/DevZone/build-test/test-tool/default.aspx?index=0&env=production&api=trading
    - GetItemTransactions Documentation: https://developer.ebay.com/devzone/xml/docs/Reference/eBay/GetItemTransactions.html
    */
	v_Found = 0;
	v_Updated = 0;
	v_Page = 1;
	v_PerPage = 10;
	m_Output = Map();
	r_Api = API_Integration[Connection_Name == "eBay API (Production)"];
	if(r_Api.count() > 0)
	{
		v_AccessToken = thisapp.API.fn_eBayConnect_AccessToken();
		v_TradingAPIVersion = r_Api.API_Version;
		v_Endpoint = "https://api.ebay.com/ws/api.dll";
		//
		// build header
		m_Headers = Map();
		m_Headers.put("X-EBAY-API-SITEID",3);
		m_Headers.put("X-EBAY-API-COMPATIBILITY-LEVEL",v_TradingAPIVersion);
		v_ApiCall = "GetItemTransactions";
		m_Headers.put("X-EBAY-API-CALL-NAME",v_ApiCall);
		m_Headers.put("X-EBAY-API-IAF-TOKEN",v_AccessToken);
		//
		// build params
		m_Params = Map();
		m_Params.put("WarningLevel","High");
		m_Params.put("ErrorLanguage","en_GB");
		m_Params.put("DetailLevel","ItemReturnCategories");
		//
		// include fixed price items
		m_Pagination = Map();
		m_Pagination.put("PageNumber",v_Page);
		m_Pagination.put("EntriesPerPage",v_PerPage);
		m_Params.put("Pagination",m_Pagination);
		//m_ActiveList.put("Sort","ItemID");
		m_Params.put("ItemID",p_ItemID);
		//
		// convert to xml and replace root nodes
		x_Params = m_Params.toXML();
		x_Params = x_Params.toString().replaceFirst("<root>","<?xml version=\"1.0\" encoding=\"utf-8\"?><" + v_ApiCall + "Request xmlns=\"urn:ebay:apis:eBLBaseComponents\">");
		x_Params = x_Params.toString().replaceFirst("</root>","</" + v_ApiCall + "Request>");
		//
		// send the request XML as a string
		r_ResponseXML = invokeurl
		[
			url :v_Endpoint
			type :POST
			parameters:x_Params
			headers:m_Headers
		];
		//
		// output response
		info r_ResponseXML;
		/*
		//
		// if successful then read the response
		if(r_ResponseXML.contains("<Ack>Success</Ack>"))
		{
			//
			// parse the data
			v_MainNode = "Item";
			x_MainNode = r_ResponseXML.subString(r_ResponseXML.indexOf("<" + v_MainNode),r_ResponseXML.lastIndexOf("</" + v_MainNode) + v_MainNode.length() + 3);
		}
		*/
	}	
}
	- void API.fn_eBayQuery_GetItemTransaction(int p_ItemID)
 - {
 - /*
 - Function: fn_eBayQuery_GetItemTransaction()
 - Input: int p_ItemID (eBay Item ID)
 - Purpose: Fetches a line item transaction per item ID
 - Date Created: 2022-01-22 (Joellipman - Joel Lipman)
 - - Initial release
 - More Info:
 - - API Explorer Test Tool: https://developer.ebay.com/DevZone/build-test/test-tool/default.aspx?index=0&env=production&api=trading
 - - GetItemTransactions Documentation: https://developer.ebay.com/devzone/xml/docs/Reference/eBay/GetItemTransactions.html
 - */
 - v_Found = 0;
 - v_Updated = 0;
 - v_Page = 1;
 - v_PerPage = 10;
 - m_Output = Map();
 - r_Api = API_Integration[Connection_Name == "eBay API (Production)"];
 - if(r_Api.count() > 0)
 - {
 - v_AccessToken = thisapp.API.fn_eBayConnect_AccessToken();
 - v_TradingAPIVersion = r_Api.API_Version;
 - v_Endpoint = "https://api.ebay.com/ws/api.dll";
 - //
 - // build header
 - m_Headers = Map();
 - m_Headers.put("X-EBAY-API-SITEID",3);
 - m_Headers.put("X-EBAY-API-COMPATIBILITY-LEVEL",v_TradingAPIVersion);
 - v_ApiCall = "GetItemTransactions";
 - m_Headers.put("X-EBAY-API-CALL-NAME",v_ApiCall);
 - m_Headers.put("X-EBAY-API-IAF-TOKEN",v_AccessToken);
 - //
 - // build params
 - m_Params = Map();
 - m_Params.put("WarningLevel","High");
 - m_Params.put("ErrorLanguage","en_GB");
 - m_Params.put("DetailLevel","ItemReturnCategories");
 - //
 - // include fixed price items
 - m_Pagination = Map();
 - m_Pagination.put("PageNumber",v_Page);
 - m_Pagination.put("EntriesPerPage",v_PerPage);
 - m_Params.put("Pagination",m_Pagination);
 - //m_ActiveList.put("Sort","ItemID");
 - m_Params.put("ItemID",p_ItemID);
 - //
 - // convert to xml and replace root nodes
 - x_Params = m_Params.toXML();
 - x_Params = x_Params.toString().replaceFirst("<root>","<?xml version=\"1.0\" encoding=\"utf-8\"?><" + v_ApiCall + "Request xmlns=\"urn:ebay:apis:eBLBaseComponents\">");
 - x_Params = x_Params.toString().replaceFirst("</root>","</" + v_ApiCall + "Request>");
 - //
 - // send the request XML as a string
 - r_ResponseXML = invokeUrl
 - [
 - url :v_Endpoint
 - type :POST
 - parameters:x_Params
 - headers:m_Headers
 - ];
 - //
 - // output response
 - info r_ResponseXML;
 - /*
 - //
 - // if successful then read the response
 - if(r_ResponseXML.contains("<Ack>Success</Ack>"))
 - {
 - //
 - // parse the data
 - v_MainNode = "Item";
 - x_MainNode = r_ResponseXML.subString(r_ResponseXML.indexOf("<" + v_MainNode),r_ResponseXML.lastIndexOf("</" + v_MainNode) + v_MainNode.length() + 3);
 - }
 - */
 - }
 - }
 
Note to parse a multiple transaction item
This is an update 2025 that if you want to use the Zoho Deluge .toXmlList() function:
copyraw
	
Note how the child node to convert to an xml list needs to be included along with its parent.
xl_TransactionArray = x_MainNode.executeXPath("/TransactionArray/Transaction").toXmlList();
for each x_Transaction in xl_TransactionArray
{
     v_TransactionID = x_Transaction.executeXPath("/Transaction/TransactionID/text()");
}
	- xl_TransactionArray = x_MainNode.executeXPath("/TransactionArray/Transaction").toXmlList();
 - for each x_Transaction in xl_TransactionArray
 - {
 - v_TransactionID = x_Transaction.executeXPath("/Transaction/TransactionID/text()");
 - }
 
Category: Zoho :: Article: 798
	

			     
						  
                
						  
                
						  
                
						  
                
						  
                

Add comment