2016-05-31 6 views
2

Obwohl es unter store-wide-Variablen aufgeführt ist, kann ich diese Variable nicht auf einer der Checkout-Seiten einen Wert zurückgeben (andere Orte, die ich kann). Ich kann den Vornamen eines Kunden oder den Nachnamen, aber nicht diesen oder sogar den Gruppennamen erhalten.%% GLOBAL_CustomerGroupId %% - Bereich

Ich möchte bestimmte Versand- und Zahlungsoptionen basierend auf der Gruppe ausblenden, in der sie sich befinden (oder eine Art gemeinsames Kundenattribut für bestimmte Personen). Ich weiß, wie man Dinge versteckt und zeigt, aber wie kann ich dies basierend auf einer Kundengruppe (oder einem gemeinsamen Attribut) erreichen, ohne eine externe App zu erstellen?

Hier ist die neueste Art und Weise habe ich versucht:

<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> 

ich diese Schnipsel getrennt haben (HTML und JS), habe ich sie direkt auf einer Vorlage Seite gestellt, im Grunde habe ich versucht, sie in jedem Punkt setzen Ich kann - in Skript-Tags im Körper der Seite, in .js-Dateien, nur mit ihnen allein mit bedingter Logik oder ein Konsolenprotokoll ...

+0

Können Sie diese Frage so bearbeiten, dass klar ist, was genau Sie fragen? - Fragen Sie, wie Sie die CustomerGroupID auf den Kassenseiten erhalten können? Ich dachte, wir hätten das neulich angesprochen. Schreiben Sie einfach eine Funktion in die Fußzeile.html, die die CustomerGroup ID zurückgibt, und rufen Sie diese Funktion dann über die Checkout-Seite auf. Boom, Sie haben jetzt die Kundengruppen-ID auf der Checkout-Seite. Lassen Sie es mich wissen, wenn Sie möchten, dass ich eine ausführlichere Antwort schreibe, sonst kann vielleicht ein schlaueres Volk Ratschläge geben. –

Antwort

1

Es stellt sich heraus, dass bestimmte Variablen nicht verfügbar sind, und Das ist einer von ihnen. Meine Lösung:

Es gibt verschiedene Seiten, auf denen ein Kunde vor dem Einkauf landen kann. Es gibt genau zwei Seiten, die ein Kunde vor dem Auschecken landet.

An jeder dieser Stellen, auf die die globale Variable BC zugreifbar ist (sowie Anmelde-, Abmelde- und Kontoformulare), habe ich ein Stück Code platziert, das eine lokale Variable mit dem globalen Wert von BC definiert eingeloggt oder nicht), speichert es dann in sessionStorage.

Jedes Mal, wenn der Benutzer eine dieser Seiten aufruft, wird eine lokale Variable mit dem Wert von BC global definiert und ersetzt den Eintrag in sessionStorage.

Wenn ich ein Feature an eine bestimmte Gruppe von Kunden auf einer Seite anpassen muss, auf der die ursprüngliche globale BC-Variable nicht verfügbar ist, ergreife ich den Eintrag aus sessionStorage, der zuvor definiert worden war.