FROM CACHE - de_header

Betreff: Bestellbestätigungsmail

Bestellbestätigungsmail

Lisaxhanferei
Tourist
5 0 3

Wir haben ein Problem - ich komme nicht drauf, wo der Fehler liegt, dass die Bestellbestätigungsmails plötzlich (wir haben nichts geändert) nicht mehr korrekt mit dem richtigen Text ausgespielt werden. 

 

1. Wenn ein Kunde per Banküberweisung zahlen will - also die Zahlung noch ausstehend ist, sollte er eine Bestellbestätigungsmail bekommen mit "Vielen Dank für deine Bestellung!* und den Zahlungsdaten (IBAN, BIC) - aktuell bekommt er den Text nicht mehr.

2. Wenn ein Kunde per Kreditkarte bezahlt hat, soll der Kunde nur ein "Vielen Dank für deinen Einkauf!" bekommen, aktuell bekommt er aber die Bankdaten und die Aufforderung, dass er (nochmal) per Bank überweisen soll, was natürlich nicht stimmt. 

 

Kann mir jemand sagen, ob da was im Code falsch ist? Wirklich sehr seltsam... 

 

Hier ist der betreffende Code: 
{% capture email_title %}
{% if has_pending_payment %}
Vielen Dank für deine Bestellung!
{% else %}
Vielen Dank für deinen Einkauf!
{% endif %}
{% endcapture %}
{% capture email_body %}
{% if has_pending_payment %}
{% if buyer_action_required %}
Hier sind die Bankdaten für deine Banküberweisung<br><br>
<b>seewinkler HANFEREI</b><br>
<b>IBAN</b>: AT48 5100 0818 1308 6900<br>
<b>BIC</b>: EHBBAT2EXXX<br>
Sobald wir deine Zahlung erhalten haben, wirst du benachrichtigt.
{% else %}
Deine Zahlung wird verarbeitet. Du erhältst eine E-Mail, wenn deine Bestellung bestätigt ist.
{% endif %}
{% else %}
Hier sind die Bankdaten für deine Banküberweisung<br><br>
<b>seewinkler HANFEREI</b><br>
<b>IBAN</b>: AT48 5100 0818 1308 6900<br>
<b>BIC</b>: EHBBAT2EXXX<br>
Sobald wir deine Zahlung erhalten haben, wirst du benachrichtigt.
{% if requires_shipping %}
{% case delivery_method %}
{% when 'pick-up' %}
Du erhältst eine E-Mail, sobald deine Bestellung zur Abholung bereit ist. <br>Wenn du Banküberweisung als Zahlungsmethode ausgewählt hast, überweise den offenen Betrag bitte an folgendes Konto: <br>
<b>seewinkler HANFEREI</b><br>
<b>IBAN</b>: AT48 5100 0818 1308 6900<br>
<b>BIC</b>: EHBBAT2EXXX<br>
Sobald wir deine Zahlung erhalten haben, wirst du benachrichtigt.
{% when 'local' %}
Hallo {{ customer.first_name }}! Wir bereiten deine Bestellung gerade für die Zustellung vor.
{% else %}

{% endcase %}

5 ANTWORTEN 5

Gabe
Shopify Staff
19233 3003 4416

Hey @Lisaxhanferei 

 

Danke für den Code und dieses Thema um einen Conditional Logic in die Bestellbestätigungsmail einzubauen besprechen wir mehrere Male ziemlich ausführlich in der Community hier. Haben dir die Threads nicht helfen können? Das TL;DR ist dass das Problem meistens durch die Platzierung des Codes an der korrekten Stelle im Vorlagencode erfolgen muss ansonsten wird es nicht korrekt ausgelöst.

 

Der Code, den du geteilt hast, zeigt eure Logik für die Bestimmung des Inhalts basierend auf dem Zahlungsstatus und die Zahlungsmethode die in der Bestellung gewählt wurde. Hier eine Zusammenfassung der Logik und der potenziellen 🪱  im Code:

 

Wenn eine Zahlung aussteht (has_pending_payment ist true):

  • Es wird der Titel "Vielen Dank für deine Bestellung!" gesetzt.
  • Wenn eine Aktion des Käufers erforderlich ist (buyer_action_required ist true), werden die Bankdaten für eine Banküberweisung angezeigt.
  • Wenn keine Aktion des Käufers erforderlich ist, wird eine Nachricht über die Verarbeitung der Zahlung angezeigt.

Wenn keine Zahlung aussteht (has_pending_payment ist false):

  • Es wird der Titel "Vielen Dank für deinen Einkauf!" gesetzt.
  • Aktuell wird auch in diesem Fall die Nachricht mit den Bankdaten für eine Banküberweisung angezeigt, was nicht korrekt zu sein scheint, basierend auf deiner Beschreibung.

Mögliche Problemlösung:

  • Im Abschnitt, wo keine Zahlung aussteht (has_pending_payment ist false), sollte normalerweise keine Aufforderung zur Banküberweisung erscheinen, außer es gibt spezifische Gründe dafür (z.B. eine bestimmte Versandmethode, die dies erfordert). Der Code zeigt jedoch, dass die Bankdaten immer angezeigt werden, was zu der Verwirrung führt.

Vorschlag zur Korrektur:

  • Um das Problem zu beheben, solltest du den Abschnitt unter {% else %} anpassen, um sicherzustellen, dass die Bankdaten und die Aufforderung zur Überweisung nicht angezeigt werden, wenn keine Zahlung aussteht. Der Abschnitt könnte so angepasst werden, dass er nur relevante Informationen für Kunden enthält, die bereits bezahlt haben oder bei denen keine Banküberweisung erforderlich ist.

Hier eine korrigierte IF-Statement:

 

{% if has_pending_payment %}
  {% if buyer_action_required %}
    Hier sind die Bankdaten für deine Banküberweisung<br><br>
    <b>seewinkler HANFEREI</b><br>
    <b>IBAN</b>: AT48 5100 0818 1308 6900<br>
    <b>BIC</b>: EHBBAT2EXXX<br>
    Sobald wir deine Zahlung erhalten haben, wirst du benachrichtigt.
  {% else %}
    Deine Zahlung wird verarbeitet. Du erhältst eine E-Mail, wenn deine Bestellung bestätigt ist.
  {% endif %}
{% else %}
  {% if requires_shipping %}
    {% case delivery_method %}
      {% when 'pick-up' %}
        Du erhältst eine E-Mail, sobald deine Bestellung zur Abholung bereit ist. 
      {% when 'local' %}
        Hallo {{ customer.first_name }}! Wir bereiten deine Bestellung gerade für die Zustellung vor.
      {% else %}
        // Hier können weitere Anweisungen oder Informationen für den Kunden hinzugefügt werden, falls notwendig.
    {% endcase %}
  {% endif %}
{% endif %}

 

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

Lisaxhanferei
Tourist
5 0 3

Hi Gabe, 

danke dir für deine Antwort! 
leider hab ich hier das Problem, dass er mir folgendes schreibt: 

 

Body html Liquid syntax error: 'endcase' is not a valid delimiter for capture tags. use endcapture

 

das kommt leider immer, sobald ich etwas ändere bei den if & else Zeilen - hast du eine Idee, woran das liegt? wir sind langsam verzweifelt… 

Gabe
Shopify Staff
19233 3003 4416

Hey @Lisaxhanferei 

 

Nicht verzweifeln! Wo ein Wille da ein Weg! 💪

 

Der Fehler, der bei der Anpassung deines Liquid-Codes in Shopify auftritt, scheint auf ein Problem mit der Verwendung von Liquid-capture-Tags und der Strukturierung von Bedingungen innerhalb dieser Tags zurückzuführen zu sein. Das capture-Tag wird verwendet, um Text in einer Variablen zu speichern, und es muss korrekt mit {% endcapture %} geschlossen werden. Wenn innerhalb eines capture-Blocks Bedingungen verwendet werden, ist es wichtig, dass diese Bedingungen korrekt geöffnet und geschlossen werden, um Syntaxfehler zu vermeiden​​​​.

 

Der spezifische Fehler, den du erwähnt hast ("Body html Liquid syntax error: 'endcase' is not a valid delimiter for capture tags. use endcapture"), weist darauf hin, dass möglicherweise ein case-Statement oder eine ähnliche Bedingung innerhalb eines capture-Blocks nicht richtig abgeschlossen wurde. Es ist wichtig sicherzustellen, dass für jedes geöffnete Tag ({% if %}, {% case %} etc.) ein entsprechendes Schließtag vorhanden ist ({% endif %}, {% endcase %} usw.), und dass diese Schließtags in der richtigen Reihenfolge auftreten​​.

 

Um diesen Fehler zu beheben, solltest du überprüfen, ob alle Bedingungen innerhalb des capture-Blocks korrekt abgeschlossen sind. Insbesondere solltest du sicherstellen, dass endcase nicht fälschlicherweise verwendet wird, um einen capture-Block zu schließen, da capture-Blöcke immer mit endcapture geschlossen werden müssen. Zudem ist es wichtig, dass die Logik innerhalb des capture-Blocks klar und korrekt strukturiert ist, damit die Bedingungen wie erwartet funktionieren.

 

Falls du weiterhin Probleme hast, könnte es hilfreich sein, den gesamten Code des betroffenen Bereichs zu überprüfen und Schritt für Schritt zu validieren, dass alle Tags korrekt geöffnet und geschlossen werden. Eine gute Praxis ist es auch, den Code in kleinere Teile zu unterteilen und diese einzeln zu testen, um den Ursprung des Problems leichter identifizieren zu können.

 

Für eine detaillierte Erklärung der Verwendung von capture und anderen Liquid-Tags empfehle ich, die offizielle Dokumentation und Ressourcen wie LiquidJS​​ und Twilio's Liquid Template Language Guide​​ zu konsultieren, die hilfreiche Beispiele und Erklärungen bieten.

 

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

Lisaxhanferei
Tourist
5 0 3

Hi Gabe, das ist alles logisch, das passt nun auch. 
Ich habe den Code angepasst, allerdings hab ich immer noch das gleiche Problem. 

Wenn ich per Banküberweisung bezahle, sollte "Vielen Dank für Deine Bestellung" und "Hier sind die Bankdaten zur Überweisung" als Text kommen. Stattdessen kommt der Text, der bei bereits bezahlter Bestellung (also payment is fulfilled) kommt, bereits in der Einleitung oben steht immer "Vielen Dank für deinen Einkauf" was aber nur bei bereits erfolgter Zahlung kommen sollte UND es kommen immer noch KEINE Bankdaten - da stimmt irgendwas plötzlich nicht mehr, was bisher aber gepasst hat (wir haben ja nichts verändert gehabt). 

Hier nochmal der aktuelle Code: 
{% capture email_title %}
{% if has_pending_payment %}
Vielen Dank für deine Bestellung!
{% else %}
Vielen Dank für deinen Einkauf!
{% endif %}
{% endcapture %}
{% capture email_body %}
{% if has_pending_payment %}
{% if buyer_action_required %}
Hier sind die Bankdaten für deine Banküberweisung<br><br>
<b>seewinkler HANFEREI</b><br>
<b>IBAN</b>: AT48 5100 0818 1308 6900<br>
<b>BIC</b>: EHBBAT2EXXX<br>
Sobald wir deine Zahlung erhalten haben, wirst du benachrichtigt.
{% else %}
Deine Zahlung wird verarbeitet. Du erhältst eine E-Mail, wenn deine Bestellung bestätigt ist.
{% endif %}
{% else %}
Du erhältst eine Mail, sobald deine Produkte versendet wurden.
{% if requires_shipping %}
{% case delivery_method %}
{% when 'pick-up' %}
Du erhältst eine E-Mail, sobald deine Bestellung zur Abholung bereit ist. <br>Wenn du Banküberweisung als Zahlungsmethode ausgewählt hast, überweise den offenen Betrag bitte an folgendes Konto: <br>
<b>seewinkler HANFEREI</b><br>
<b>IBAN</b>: AT48 5100 0818 1308 6900<br>
<b>BIC</b>: EHBBAT2EXXX<br>
Sobald wir deine Zahlung erhalten haben, wirst du benachrichtigt.
{% when 'local' %}
Hallo {{ customer.first_name }}! Wir bereiten deine Bestellung gerade für die Zustellung vor.
{% else %}

{% endcase %}

Gabe
Shopify Staff
19233 3003 4416

Hey @Lisaxhanferei 

 

In deinem Liquid-Code gibt es einfach ein Strukturproblem, das die korrekte Anzeige von Zahlungsinformationen und Dankesnachrichten beeinflusst. Die Bedingung {% if has_pending_payment %} sollte überprüfen, ob eine Zahlung aussteht, und entsprechend die Bankdaten anzeigen. Die Bedingung {% else %} sollte nur dann greifen, wenn keine Zahlung aussteht, also wenn zum Beispiel per Kreditkarte bezahlt wurde.

 

Das Problem könnte darin liegen, dass die Bedingungen und die Logik innerhalb der {% capture %}-Tags möglicherweise nicht korrekt strukturiert oder geschlossen sind. Es ist wichtig, dass du für jedes geöffnete {% if %}, {% case %} oder ähnliche Tags ein entsprechendes schließendes Tag hast ({% endif %}, {% endcase %} etc.).

 

Beachte, dass {% case %} und {% when %}-Tags nur innerhalb von {% case %}-Blöcken funktionieren und nicht innerhalb von {% capture %}-Blöcken. Stelle sicher, dass alle Bedingungen korrekt geöffnet und geschlossen werden und dass endcapture nur zum Schließen von capture-Blöcken verwendet wird, nicht zum Schließen von case-Statements.

 

Es deutet also ggf. darauf hin, dass es, wie gesagt, ein Problem mit den Liquid-Bedingungen in deinen E-Mail-Vorlagen gibt. Die Liquid-Variable has_pending_payment sollte überprüfen, ob die Zahlung noch aussteht, und dementsprechend unterschiedliche Nachrichten anzeigen. Wenn die Zahlung per Banküberweisung noch aussteht, sollte der Kunde die Aufforderung zur Zahlung mit den Bankdaten erhalten. Wenn die Zahlung bereits erfolgt ist, wie bei einer Kreditkartenzahlung, sollte diese Aufforderung nicht erscheinen.

Hier sind einige Tipps basierend auf den Informationen, die ich gefunden habe:

  • Überprüfe, ob die Variable has_pending_payment korrekt verwendet wird. Diese sollte true zurückgeben, wenn die Zahlung noch aussteht, und false, wenn die Zahlung bereits abgeschlossen ist. Diese Variable ist entscheidend, um festzustellen, welcher Text dem Kunden angezeigt werden sollte​​.

  • Es könnte auch nützlich sein, die transaction-Objekte und ihre Attribute wie transaction.gateway zu überprüfen, um zu sehen, ob die Zahlungsmethode korrekt identifiziert wird. Das könnte dir helfen, den Kontext für die Bedingungen in deiner Liquid-Logik zu verstehen​​.

Wenn die Probleme weiterhin bestehen, könnte es hilfreich sein, die Unterstützung eines Shopify-Experten oder des Shopify-Supports in Anspruch zu nehmen, da dies ein spezifisches Problem zu sein scheint, das möglicherweise eine detailliertere Untersuchung erfordert.

 

Hoffe das hilft dir weiter und ein schönes W-Ende! 😉

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