Shopify:获取当前使用JavaScript登录的用户ID

Dou*_*eri 8 javascript ajax shopify

我正在尝试为shopify构建一个应用程序,如果我可以使用javascript api或类似的东西获取当前登录的用户ID,我很感兴趣.我正在查看ajax api:http://docs.shopify.com/support/your-website/themes/can-i-use-ajax-api我可以看到你可以获得当前用户拥有的当前产品添加到他的购物车,但没有关于用户ID.

有可能,还是我错过了什么?

Reb*_*ebs 11

我发现__st变量不可靠(__st_uniqToken一个).我相信在Javascript中执行此操作的正确方法是使用以下调用:

ShopifyAnalytics.lib.user().id()

您还可以使用以下命令获取唯一用户ID(未登录ID):

ShopifyAnalytics.lib.user().properties().uniqToken

这也是在结帐页面上获取它的唯一可靠方法.我以前用过__st_uniqToken,但它已经停止工作了.

注意这不再是100%万无一失.Shopify也再次改变了他们的网站是如何工作的楼梯平台上,谢谢,你的页面.我不得不求助于以下函数来"可靠地"获取用户ID.

var user_id = function() {
    try {
        return ShopifyAnalytics.lib.user().id();
    } catch(e) {}
    try {
        return ShopifyAnalytics.lib.user().properties().uniqToken;
    } catch(e) {}
    try {
        return ShopifyAnalytics.lib.user().anonymousId();
    } catch(e) {}
    return __st_uniqToken;
};
Run Code Online (Sandbox Code Playgroud)

为Shopify开发是一场真正的噩梦.我花了50%的时间每隔几周不打破我的产品,因为他们.

  • 自这个答案以来,`ShopifyAnalytics.lib.user()`对象似乎已经改变了.我现在只看到`traits`函数,属性为uniqToken,即`ShopifyAnalytics.lib.user.traits().uniqToken` (5认同)
  • @AndyTriggs 现在是 `ShopifyAnalytics.lib.user().traits().uniqToken` (2认同)

小智 9

您可以尝试__st.cid使用JavaScript获取客户ID.


com*_*tos 8

layout.liquid文件中,您可以添加此代码来定义全局customerId变量

{% if customer %}
  <script type="text/javascript">
   window.customerId = "{{ customer.id }}";   
  </script>
{% endif %}
Run Code Online (Sandbox Code Playgroud)


Dav*_*zar 6

您最好的选择是创建一个在商店中安装简单 ScriptTag 的应用程序。然后,该脚本可以将客户 ID 安全地报告回应用程序。做到这一点非常简单。忘记前端 API,因为没有安全的方法来使用它调用您的应用程序。

  • 听起来不错。但是如何使用脚本获取客户 ID?这就是我要找的 (2认同)

小智 6

只是从ShopifyAnalytics.meta.page.customerId您的脚本中获取

  • `ShopifyAnalytics.meta.page` 对象不再包含 `customerId` (2认同)