2

尽管它列在商店范围的变量下,但我无法让此变量在任何结帐页面(我可以在其他地方)上返回值。我可以得到客户的名字或姓氏,但不能得到这个,甚至他们的组名。

我想根据他们所在的组(或某些人的某种共享客户属性)隐藏某些运输和付款选项。我知道如何隐藏和显示事物,但是如何在不创建外部应用程序的情况下基于客户组(或共享属性)实现这一点?

这是我尝试过的最新方法:

<span id="variable-for-user-name">%%GLOBAL_CurrentCustomerFirstName%%</span>
<span id="variable-for-user-group">%%GLOBAL_CustomerGroupId%%</span>

<script>
console.log("footer top");

var currentUserFirstName = $.trim($('span#variable-for-user-name').text());
var currentUserGroupId = $.trim($('span#variable-for-user-group').text());

console.log(currentUserFirstName);
console.log(currentUserGroupId);

console.log("footer bottom");
</script>

我已经分离了这些片段(HTML 和 JS),我将它们直接放在模板页面上,基本上我已经尝试将它们放在我可以放置的每个位置 - 在页面正文中的脚本标签中,在 .js 文件中,只需使用他们单独使用条件逻辑或控制台日志......

4

1 回答 1

1

事实证明,某些变量在站点范围内不可用,这就是其中之一。我的解决方案:

客户在购物前可以登陆几个不同的页面。客户在结账前登陆两个页面。

在每个可以访问 BC 全局变量的地方(以及登录、注销和帐户表单)中,我放置了一段代码,该代码定义了一个具有 BC 全局值的局部变量(无论是否登录) ),然后将其保存到 sessionStorage。

每次用户点击其中一个页面时,都会使用 BC 全局值定义一个局部变量,并替换 sessionStorage 中的条目。

当我需要在原始 BC 全局变量不可用的页面上为特定客户组定制功能时,我会从之前定义的 sessionStorage 中获取条目。

于 2016-08-31T23:14:09.107 回答