I'm looking for some advice on the best way to get the current logged in customer id. Right now I rely on app proxy pages, but I'm not really happy with that solution. I've seen people use some Javascript supplied by Shopify to check a variable:
__st.cid
But it doesn't seem like it's intended to be used by developers and could change without notice. What solutions are people finding the most success with? Are there any plans to have better support for this in the near future?
Hello,
You can use liquid for the same. You can get current user's customer id by => {{ customer.id }}
Hi, Davie_w
I think the __st.cid is a good solution.
If you want to make sure the logged customers data is correct. You can use the ScriptTag API to achieve.
1. Add a script resource to store via ScriptTag API
2. In the script use the __st.cid to get the current customer's ID
3. Save the result from the step.2 in browser's localstorage and your app can access it
Does it work for you?
Hi, You can get the customerid from the window object but the specification is always changing and different customers may be using different versions.
I am using a function like this in my apps-
var getCustomerId = function() { try { let curr = window.ShopifyAnalytics.meta.page.customerId; if (curr !== undefined && curr !== null && curr !== "") { return curr; } } catch(e) { } try { let curr = window.meta.page.customerId; if (curr !== undefined && curr !== null && curr !== "") { return curr; } } catch (e) { } try { let curr = _st.cid; if (curr !== undefined && curr !== null && curr !== "") { return curr; } } catch (e) { } try { let curr = ShopifyAnalytics.lib.user().traits().uniqToken; if (curr !== undefined && curr !== null && curr !== "") { return curr; } } catch (e) { } return null; }
Hope this helps !!
User | Count |
---|---|
13 | |
12 | |
7 | |
4 | |
4 |