For Zoho Services only:


I'm actually part of something bigger at Ascent Business Solutions recognized as the top Zoho Premium Solutions Partner in the United Kingdom.

Ascent Business Solutions offer support for smaller technical fixes and projects for larger developments, such as migrating to a ZohoCRM.  A team rather than a one-man-band is always available to ensure seamless progress and address any concerns. You'll find our competitive support rates with flexible, no-expiration bundles at https://ascentbusiness.co.uk/zoho-services/uk-zoho-support.  For larger projects, talk to our experts and receive dedicated support from our hands-on project consultants at https://ascentbusiness.co.uk/zoho-services/zoho-crm-implementation.

The team I manage specializes in coding API integrations between Zoho and third-party finance/commerce suites such as Xero, Shopify, WooCommerce, and eBay; to name but a few.  Our passion lies in creating innovative solutions where others have fallen short as well as working with new businesses, new sectors, and new ideas.  Our success is measured by the growth and ROI we deliver for clients, such as transforming a garden shed hobby into a 250k monthly turnover operation or generating a +60% return in just three days after launch through online payments and a streamlined e-commerce solution, replacing a paper-based system.

If you're looking for a partner who can help you drive growth and success, we'd love to work with you.  You can reach out to us on 0121 392 8140 (UK) or info@ascentbusiness.co.uk.  You can also visit our website at https://ascentbusiness.co.uk.
Zoho Deluge: Connect to Shopify

Zoho Deluge: Connect to Shopify

What?
A quick article showing 2 ways of connecting to Shopify's REST API with a custom app.

Note that this is not for an app embedded in the Shopify instance but for a third-party app, such as a Zoho Creator app, to connect to the data within Shopify.

Why?
At time of print, we have woken up to the news that including a username and password, or a client and secret in the endpoint of a URL will no longer be supported in the Zoho Deluge invokeURL task...

This article exists because I spent 2 hours going down the rabbit hole of trying to use OAuth2 and following the usual steps: Grant Code, Refresh Token, Access Token. I also went down the rabbit hole of installing app-bridge and configuring a JWT which was an absolute waste of time with regards to what I was attempting to do.

How?
Let me show you how we used to connect and then what the new code will be. The preamble to both of these is how to get the values to include in the invokeURL headers and payload.

Previously on...
copyraw
m_Header = Map();
	m_Header.put("Content-Type","application/json");
	//
	// app specific (retrieving from a ZohoCreator record that stores all these credentials)
	r_ShopifyAPI = API_Integration[Connection_Name == "Shopify API"];
	//
	// client id from the shopify admin and registering a custom app
	// eg. 00112233445566778899aabbccddeeff
	v_ClientID = r_ShopifyAPI.Client_ID;
	//
	// client secret from the shopify admin and registering a custom app
	// eg. shpss_aaabbbcccdddeeefff01234567890
	v_ClientSecret = r_ShopifyAPI.Client_Secret;
	//
	// the shop id from the URL https://{shop_id}.myshopify.com
	// eg. my-example-store
	v_ShopID = r_ShopifyAPI.Shop_ID;
	//
	// concatenated for the endpoint
	v_ShopifyURL = "https://" + v_ClientID + ":" + v_ClientSecret + "@" + v_ShopID + ".myshopify.com";
	//
	// per endpoint request to specify which API version (eg. 2025-07)
	v_ShopifyApiVersion = r_ShopifyAPI.API_Version;
	//
	// url with client id and client secret (now to be deprecated July 25, 2025 by Zoho)
	// where p_OrderID is the shopify order ID
	v_Endpoint = v_ShopifyURL + "/admin/api/" + v_ShopifyApiVersion + "/orders/" + p_OrderID + ".json";
	r_GetOrder = invokeurl
	[
		url :v_Endpoint
		type :GET
		headers:m_Header
	];
	info r_GetOrder;
  1.  m_Header = Map()
  2.      m_Header.put("Content-Type","application/json")
  3.      // 
  4.      // app specific (retrieving from a ZohoCreator record that stores all these credentials) 
  5.      r_ShopifyAPI = API_Integration[Connection_Name == "Shopify API"]
  6.      // 
  7.      // client id from the shopify admin and registering a custom app 
  8.      // eg. 00112233445566778899aabbccddeeff 
  9.      v_ClientID = r_ShopifyAPI.Client_ID; 
  10.      // 
  11.      // client secret from the shopify admin and registering a custom app 
  12.      // eg. shpss_aaabbbcccdddeeefff01234567890 
  13.      v_ClientSecret = r_ShopifyAPI.Client_Secret; 
  14.      // 
  15.      // the shop id from the URL https://{shop_id}.myshopify.com 
  16.      // eg. my-example-store 
  17.      v_ShopID = r_ShopifyAPI.Shop_ID; 
  18.      // 
  19.      // concatenated for the endpoint 
  20.      v_ShopifyURL = "https://" + v_ClientID + ":" + v_ClientSecret + "@" + v_ShopID + ".myshopify.com"
  21.      // 
  22.      // per endpoint request to specify which API version (eg. 2025-07) 
  23.      v_ShopifyApiVersion = r_ShopifyAPI.API_Version; 
  24.      // 
  25.      // url with client id and client secret (now to be deprecated July 25, 2025 by Zoho) 
  26.      // where p_OrderID is the shopify order ID 
  27.      v_Endpoint = v_ShopifyURL + "/admin/api/" + v_ShopifyApiVersion + "/orders/" + p_OrderID + ".json"
  28.      r_GetOrder = invokeUrl 
  29.      [ 
  30.          url :v_Endpoint 
  31.          type :GET 
  32.          headers:m_Header 
  33.      ]
  34.      info r_GetOrder; 

Now Continuing...
Using the API Admin Access Token:
copyraw
r_ShopifyAPI = API_Integration[Connection_Name == "Shopify API"];
	v_ClientID = r_ShopifyAPI.Client_ID;
	v_ClientSecret = r_ShopifyAPI.Client_Secret;
	v_ShopifyApiVersion = r_ShopifyAPI.API_Version;
	v_Shopify_BaseURL = "https://" + v_ShopID + ".myshopify.com";
	//
	m_Header = Map();
	m_Header.put("Content-Type","application/json");
	// The access token is the Admin API token received when installing the custom app for the first time
	m_Header.put("X-Shopify-Access-Token",r_ShopifyAPI.Access_Token.trim());
	//
	v_Endpoint = v_Shopify_BaseURL + "/admin/api/" + v_ShopifyApiVersion + "/orders/" + p_OrderID + ".json";
	r_GetOrder = invokeurl
	[
		url :v_Endpoint
		type :GET
		headers:m_Header
	];
	info r_GetOrder;
  1.  r_ShopifyAPI = API_Integration[Connection_Name == "Shopify API"]
  2.      v_ClientID = r_ShopifyAPI.Client_ID; 
  3.      v_ClientSecret = r_ShopifyAPI.Client_Secret; 
  4.      v_ShopifyApiVersion = r_ShopifyAPI.API_Version; 
  5.      v_Shopify_BaseURL = "https://" + v_ShopID + ".myshopify.com"
  6.      // 
  7.      m_Header = Map()
  8.      m_Header.put("Content-Type","application/json")
  9.      // The access token is the Admin API token received when installing the custom app for the first time 
  10.      m_Header.put("X-Shopify-Access-Token",r_ShopifyAPI.Access_Token.trim())
  11.      // 
  12.      v_Endpoint = v_Shopify_BaseURL + "/admin/api/" + v_ShopifyApiVersion + "/orders/" + p_OrderID + ".json"
  13.      r_GetOrder = invokeUrl 
  14.      [ 
  15.          url :v_Endpoint 
  16.          type :GET 
  17.          headers:m_Header 
  18.      ]
  19.      info r_GetOrder; 
Category: Zoho :: Article: 907

Add comment

Your rating:

Submit

Credit where Credit is Due:


Feel free to copy, redistribute and share this information. All that we ask is that you attribute credit and possibly even a link back to this website as it really helps in our search engine rankings.

Disclaimer: Please note that the information provided on this website is intended for informational purposes only and does not represent a warranty. The opinions expressed are those of the author only. We recommend testing any solutions in a development environment before implementing them in production. The articles are based on our good faith efforts and were current at the time of writing, reflecting our practical experience in a commercial setting.

Thank you for visiting and, as always, we hope this website was of some use to you!

Kind Regards,

Joel Lipman
www.joellipman.com

Accreditation

Badge - Zoho Creator Certified Developer Associate
Badge - Zoho Deluge Certified Developer
Badge - Certified Zoho CRM Developer

Donate & Support

If you like my content, and would like to support this sharing site, feel free to donate using a method below:

Paypal:
Donate to Joel Lipman via PayPal

Bitcoin:
Donate to Joel Lipman with Bitcoin bc1qf6elrdxc968h0k673l2djc9wrpazhqtxw8qqp4

Ethereum:
Donate to Joel Lipman with Ethereum 0xb038962F3809b425D661EF5D22294Cf45E02FebF

Please publish modules in offcanvas position.