Liquid, JavaScript, Themes
Ich würde gerne eine Nachricht auf die Rechnung schreiben, basierend darauf, ob der Kunde bereits beim Newsletter angemeldet ist oder nicht.
So funktioniert es nicht (da glaub ich das "customer" Objekt nicht vollständig ist):
{% if customer %}
Hello, {{ customer.first_name }} {{ customer.last_name }}!<br/>
{% if customer.accepts_marketing %}
Thank you for subscribing to our newsletter.
{% else %}
Don't miss out by subscribing to our newsletter!<br/>
Click here and get a discount on your next order.
{% endif %}
Hey @Decker42
Das hört sich wie eine verbesserte Customer Experience an! Um zu überprüfen, ob ein Kunde beim Newsletter angemeldet ist und dies in den Order Printer Templates von Shopify zu berücksichtigen, kannst du deinen Code verwenden, es scheint aber ein Closing {% endif %}
in deinem Code zu fehlen:
customer.accepts_marketing
verwenden. Dieser gibt true
zurück, wenn der Kunde den Marketing-E-Mails zugestimmt hat. Deine IF-Statement könnte also wie folgt aussehen:
{% if customer %}
Hello, {{ customer.first_name }} {{ customer.last_name }}!<br/>
{% if customer.accepts_marketing %}
Thank you for subscribing to our newsletter.
{% else %}
Don't miss out by subscribing to our newsletter!<br/>
Click here and get a discount on your next order.
{% endif %}
{% endif %}
Dieser Code überprüft zunächst, ob das customer
-Objekt vorhanden ist. Falls ja, zeigt er eine Begrüßung an, die den Vor- und Nachnamen des Kunden enthält (customer.first_name
und customer.last_name
). Anschließend überprüft der Code, ob der Kunde den Marketing-E-Mails zugestimmt hat (customer.accepts_marketing
). Abhängig davon wird eine entsprechende Nachricht angezeigt.
Füge den angepassten Code in das Order Printer Template ein. Du findest die Option zur Bearbeitung deiner Templates unter "Order Printer" > "Vorlagen verwalten" in deinem Shopify-Adminbereich.
Für weitere Informationen und Anleitungen zur Anpassung von Order Printer Templates in Shopify, kannst du die Shopify-Hilfezentrum-Webseite zu Customizing Order Printer templates und Using the Order Printer app besuchen.
Gabe | Social Care @ Shopify
- War meine Antwort hilfreich? Klicke Like um es mich wissen zu lassen!
- Wurde deine Frage beantwortet? Markiere es als Akzeptierte Lösung
- Um mehr zu erfahren, besuche das Shopify Help Center oder den Shopify Blog
Hi! Danke für die Antwort. Ich habe die letzte Zeile des Codes vergessen zu posten.
Hier ist mein kompletter Code:
{% if customer %}
Hello, {{ customer.first_name }} {{ customer.last_name }}!<br/>
{% if customer.accepts_marketing %}
Thank you for subscribing to our newsletter.
{% else %}
Don't miss out by subscribing to our newsletter!<br/>
Click here and get a discount on your next order.
{% endif %}
{% endif %}
und hier der Output einer Order mit einem Kunden, der den Newsletter abonniert hat:
Hello, !
Don't miss out by subscribing to our newsletter!
Click here and get a discount on your next order.
Wie man sieht, sind weder first_name noch last_name vorhanden und auch das Attribut accepts_marketing nicht.
Das ist, wie im Original-Beitrag geschrieben, das Problem aus meiner Sicht.
Bitte um Hilfe!
Hey @Decker42
Vielleicht ist das customer
-Objekt in deinem Shopify Liquid-Code nicht an der richtigen Stelle platziert, oder wird richtig initialisiert bzw. aufgerufen. Oder dass die entsprechenden Daten im Objekt nicht vorhanden sind.
Der Platz, an dem der Code in deinen Shopify-Templates eingefügt wird, ist nämlich entscheidend. Es sollte sichergestellt werden, dass der Code in einem Bereich des Templates platziert wird, der auf den angemeldeten Kundenstatus zugreifen kann. Zum Beispiel könnte der Code unterhalb des {% section 'header' %}
Tags im theme.liquid
-File platziert werden.
Dies könnte der Grund sein, warum first_name
, last_name
und accepts_marketing
nicht richtig angezeigt werden. Hier sind einige Schritte, die du unternehmen kannst, um das Problem zu lösen. Stelle sicher, dass das customer
-Objekt tatsächlich die notwendigen Daten enthält. Du kannst dies überprüfen, indem du temporär alle verfügbaren Informationen des customer
-Objekts ausgibst, zum Beispiel:
{% if customer %}
{% for property in customer %}
{{ property[0] }}: {{ property[1] }}<br/>
{% endfor %}
{% endif %}
Dieser Code gibt alle Eigenschaften des customer
-Objekts aus. So kannst du sehen, ob first_name
, last_name
und accepts_marketing
vorhanden und korrekt gefüllt sind. Überprüfe mal die Shopify-Dokumentation zu den Liquid-Objekten, um sicherzustellen, dass du die richtigen Eigenschaften verwendest. Es ist möglich, dass bestimmte Eigenschaften anders benannt sind oder bestimmte Daten in deinem spezifischen Shop-Kontext nicht verfügbar sind. Stelle auch sicher, dass dein Template oder die Anwendung, die den Liquid-Code ausführt, die notwendigen Zugriffsrechte hat, um die Kundendaten abzurufen.
Du könntest Fallback-Werte einfügen, falls die Daten nicht verfügbar sind, um sicherzustellen, dass immer eine sinnvolle Nachricht ausgegeben wird. Zum Beispiel:
{% if customer %}
Hello, {{ customer.first_name | default: 'Valued Customer' }} {{ customer.last_name | default: '' }}!<br/>
{% if customer.accepts_marketing %}
Thank you for subscribing to our newsletter.
{% else %}
Don't miss out by subscribing to our newsletter!<br/>
Click here and get a discount on your next order.
{% endif %}
{% endif %}
In diesem Beispiel wird "Valued Customer" als Default verwendet, wenn first_name
nicht verfügbar ist.
Desweiteren:
Kann es sein, dass das Liquid-Code für das customer
-Objekt nur dann funktioniert, wenn ein Kunde in deinem Shop angemeldet ist? Das bedeutet, dass customer.first_name
, customer.last_name
und customer.accepts_marketing
nur verfügbar sind, wenn der Kunde eingeloggt ist. Dies könnte erklären, warum in deinem Fall die Werte nicht angezeigt werden, falls der Kunde nicht angemeldet war.
Wenn du weiterhin Probleme hast, könntest du den Shopify-Support kontaktieren. Sie können einen 👀 in deine Einstellungen werfen und möglicherweise feststellen, warum die customer
-Objektdaten nicht wie erwartet erscheinen.
Um dir dabei behilflich zu sein, sende bitte eine E-Mail an unseren Support wie hier demonstriert von der E-Mail-Adresse, die du zur Anmeldung in deinem Shopify-Shop verwendest, und gib deine myshopify.com-URL da auch ein. Sobald die dein Konto authentifiziert haben, können sie dir weiterhelfen.
Gabe | Social Care @ Shopify
- War meine Antwort hilfreich? Klicke Like um es mich wissen zu lassen!
- Wurde deine Frage beantwortet? Markiere es als Akzeptierte Lösung
- Um mehr zu erfahren, besuche das Shopify Help Center oder den Shopify Blog
Hi Gabe,
Danke für deine Antwort.
Ich verwende den Code direkt in einem Order Printer Template.
Hier ist der relevante aktuelle Code:
{% if customer %}
Name: {{ customer.name }}<br/>
Email: {{ customer.email }}<br/>
Properties BEGIN<br/>
{% for property in customer %}
{{ property[0] }}: {{ property[1] }}<br/>
{% endfor %}
Properties END<br/>
{% endif %}
der produziert folgendes. D.h. das customer Objekt existiert, es hat wohl auch gewisse properties, aber ich kann weder drüber-iterieren, noch bekomme ich alle Eigenschaften vom customer. Gibt es hier noch eine andere Möglichkeit um mein Ziel zu erreichen?
Vielen Dank!
Name: Syyyyy Zxxxx
Email: s.zxxxx@xxxx.at
Properties BEGIN
Properties END
Hey @Decker42
Ich würde dir an dieser Stelle ans Herz legen, das mit einem Entwickler zu besprechen der einen 👀 in deinem Code werfen kann. Wenn du es selber programmieren möchtest dann zusammen mit einem Experten/Programmierer. Du könntest einen unserer zertifizierten Experten engagieren indem du denen eine E-Mail rüberschießt. Unsere Experten antworten meist sehr schnell.
Es scheint, dass das customer
-Objekt in Shopify Order Printer Templates eingeschränkte Informationen bereitstellt. Insbesondere scheinen Attribute wie first_name
, last_name
und accepts_marketing
nicht verfügbar zu sein. Dies erklärt, warum dein Code nicht wie erwartet funktioniert.
Das customer
-Objekt im Order Printer Template gibt offenbar nur den Namen und die E-Mail-Adresse des Kunden zurück. Spezifischere Informationen wie Newsletter-Abonnements (gekennzeichnet durch accepts_marketing
) sind in diesem Kontext nicht verfügbar. Daher kannst du diese spezifische Information leider nicht direkt im Order Printer Template nutzen.
Um eine personalisierte Nachricht auf der Rechnung in Shopify zu erstellen, die sich danach richtet, ob der Kunde bereits beim Newsletter angemeldet ist oder nicht, musst du das customer
-Objekt im Order Printer Template verwenden. Allerdings ist zu beachten, dass das customer
-Objekt in Order Printer Templates, wie gesagt, nur begrenzte Informationen zur Verfügung stellt. Konkret sind nur der Name und die E-Mail des Kunden verfügbar. Das bedeutet, dass customer.tags
und andere spezifische Attribute wie customer.accepts_marketing
möglicherweise nicht verfügbar sind.
Um zu überprüfen, ob ein Kunde den Newsletter abonniert hat, kannst du dennoch den allgemeinen customer
-Block nutzen und eine bedingte Logik einbauen, die sich auf die verfügbaren Informationen stützt. Zum Beispiel mit einer einfachen IF-Statement:
{% if customer %}
Hello, {{ customer.name }}<br/>
<!-- Hier kannst du eine generelle Nachricht einfügen, da die spezifische Information zum Newsletter-Abo nicht verfügbar ist -->
{% endif %}
Das Hinzufügen spezifischerer Informationen, wie ob der Kunde den Newsletter abonniert hat, erfordert möglicherweise eine Anpassung des Templates, die über das Standard-Liquid-Template hinausgeht. Da das customer
-Objekt in Order Printer Templates limitiert ist, könntest du in Erwägung ziehen, einen Shopify-Experten zu konsultieren oder die Dokumentation zu Shopify Liquid und Order Printer Templates weiter zu erforschen, um fortgeschrittenere Anpassungen vorzunehmen.
Als Alternative könntest du:
Generelle Nachrichten verwenden: Anstelle von spezifischen Informationen basierend auf dem Newsletter-Abonnement könntest du eine allgemeinere Nachricht verwenden, die für alle Kunden gilt.
Manuelle Anpassung: Wenn es für dich machbar ist, könntest du die Informationen manuell vor dem Drucken anpassen, basierend auf deinen eigenen Aufzeichnungen darüber, welche Kunden den Newsletter abonniert haben.
Erweiterte Anpassungen mit einem Shopify-Experten: Wenn du eine spezifischere Lösung benötigst, die über die Standardfunktionalitäten hinausgeht, könntest du einen Shopify-Experten konsultieren, um mögliche Anpassungen oder die Entwicklung einer benutzerdefinierten Lösung zu besprechen.
Es ist wichtig zu beachten, dass die Einschränkungen der verfügbaren Informationen im Order Printer Template durch die Art und Weise bedingt sind, wie Shopify die Daten im Backend verarbeitet und bereitstellt. Daher ist es möglich, dass für eine erweiterte Funktionalität ein tieferes Verständnis von Shopify's Liquid Programmiersprache oder sogar eine individuelle Lösung erforderlich sein könnte.
Weitere Informationen und Anleitungen findest du auf Websites wie e1commerce.com, die sich auf Shopify-Liquid-Programmierung spezialisieren.
Hoffe das hilft dir weiter - lass wissen falls nicht! 😉
---
Habt ihr auch den Shop auf den Valentinstag 🫶 umgestellt? Jetzt ist die Zeit wo Online Shopper nach 🎁 für ihre ❤️ 👀!
Hast du weitere Fragen zum Shop? Gebe einfach ein Suchbegriff oben in der Suchleiste der Community Landingpage ein, denn das Thema haben wir sehr wahrscheinlich schon besprochen. Halte bitte Ausschau in deiner E-Mail auf Notifications zu Antworten auf deine Fragen in der Community.
Gabe | Social Care @ Shopify
- War meine Antwort hilfreich? Klicke Like um es mich wissen zu lassen!
- Wurde deine Frage beantwortet? Markiere es als Akzeptierte Lösung
- Um mehr zu erfahren, besuche das Shopify Help Center oder den Shopify Blog
Hallo zusammen! Wir haben intensiv daran gearbeitet, dein Shopify-Erlebnis auf Deutsc...
By JasonH May 12, 2025Mit dem Lernpfad der Shopify Academy und dem Verified Skills-Badge Expanding Your Sho...
By Shopify Feb 7, 2025Den Verkauf im Großhandel steigern: In der Shopify Academy lernst du, wie das geht, zum...
By Shopify Feb 3, 2025