Shopify b2b 登录重定向(非hydrogen)

提示:如果一个账号是B端账号,且商城客户账户登录是传统的账号密码登录则可适用。

B端访问链接如下:

首先B端用户登录需要商家提供访问此链接,客户邮箱验证后再点回商店进行购物,但在真实场景中,有B端业务的商家让用户这样操作再点回商城是不太合理的。

提供重定向地址

在全局访问liquid数据的文件中添加B端用户信息以供全局js文件进行访问

<script>
  window.themeVariables = {
    userCompany: {
      isB2b: {{ customer.b2b? }},
      name: '{{ customer.current_company.name }}',
      zip: "{{ customer.current_location.shipping_address.zip }}"
    }
    ...
  }
</script>

全局JS代码添加如下

  (() => { // 主要校验用户是否是B端用户
    if(Cookies.get('logout') == 'true') {
      Cookies.remove('logout');
      window.location.href = '/account/logout';
    }
    if(
      (!window.themeVariables.userCompany.isB2b && window.themeVariables.userCompany.name) ||
      (window.themeVariables.userCompany.isB2b && !window.themeVariables.userCompany.zip)
    ) {
      const parsedUrl = new URL(window.location.href); 
      const returnTo = parsedUrl.pathname + parsedUrl.search;
      window.location.href = `https://shopify.com/11111111111/account/locations?return_to=${returnTo}`;
    }
  })();

情况1

如果有公司名称但是个人信息不是b2b(B端用户首次登录)则需要跳到B端登录后台去并携带着重定向地址(完整的商店地址https://...)。

情况2

如果是B端用户但是没地址,这种情况是此浏览器已经登录了一个B端账号,但是这个账号退出了,另一个B端账号去在这个浏览器登录,此时商店浏览器cookie还记录着上一个账号的B端信息,这个cookie无法手动清除,前一个账号和这个后登录的B端账号冲突了,所以必须还得跳到B端后台去登录。

全局退出账号方法

if(window.themeVariables.userCompany.isB2b == 'true') {
  Cookies.set('logout', 'true');
  window.location.href = "https://shopify.com/11111111111/account/logout";
} else {
  window.location.href = "/account/logout";
}

退出的话如果是B端用户需要先退出B端后台,记录一下cookie,等B端退出后会重定向回商店然后判断用户是否从B端后台退出Cookies.get('logout') == 'true' 再退出商城账号,这样的话支持一个浏览器多B端用户。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值