2016-05-31 6 views
2

store-wide-variablesの下にリストされていますが、この変数を使用してチェックアウトページ(私ができる他の場所)の値を返すことはできません。私は顧客の名前、または姓を得ることができますが、これはできません、または彼らのグループ名です。%% GLOBAL_CustomerGroupId %% - Scope

特定の配送および支払いオプションは、そのグループに属しているか(特定の人のための共有された顧客属性)に基づいて非表示にしたいと考えています。私は隠す方法を知っているが、外部のアプリケーションを作成せずに顧客グループ(または共有属性)に基づいてこれを達成するにはどうすればよいですか?ここで

は、私が試してみました、最新の方法です:

<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ファイル、条件付きロジックのみ、またはコンソールログを使用するだけです。...

+0

この質問を編集して、あなたが求めている内容がより明確になるようにすることはできますか? - チェックアウトページでCustomerGroupIDを取得する方法を尋ねていますか?私は先日これについて対処したと思いました。 footer.htmlにCustomerGroup IDを返す関数を記述して、その関数をチェックアウトページから呼び出します。ブーム、チェックアウトページで顧客グループIDにアクセスできるようになりました。あなたが私にもっと詳細な答えを書くことを希望するかどうかを教えてください。そうでなければもっとスマートな人々がアドバイスをしてチャンスをつけるかもしれません。 –

答えて

1

特定の変数はサイト全体で利用できないことが判明しました。これはその一つです。私の解決策:

ショッピングの前に顧客が着陸できるページがいくつかあります。チェックアウトの前に顧客に到着する正確に2つのページがあります。

BCグローバル変数がアクセス可能な各場所(ログインフォーム、ログアウトフォーム、アカウントフォーム)では、BCグローバルの値を持つローカル変数を定義するコードを配置しましたログインしているかどうか)を確認し、sessionStorageに保存します。

ユーザーがこれらのページの1つを押すたびに、ローカル変数がBCグローバルの値で定義され、sessionStorageのエントリが置き換えられます。

元のBCグローバル変数が利用できないページで特定の顧客グループにフィーチャを調整する必要がある場合、前に定義したsessionStorageからエントリを取得します。