Liquid, JavaScript, Themes
Guten Tag Zusammen,
beim Einrichten einer manuellen Zahlungsmethode bin ich auf folgendes Problem gestoßen.
Vielleicht kann mir diesbezüglich einer weiterhelfen.
Wir haben nun eine manuelle Zahlungsmethode im Shop hinzugefügt > Vorkasse
Damit der Kunde in der Bestellbestätigung die relevanten Zahlungsinformationen erhält, habe ich den Code in der Bestätigungsmail um folgende Punkte erweitern wollen > (den gleichen Code habe ich aus einem anderen Beitrag erhalten)
Eingefügt habe ich den Code unter "Zahlung.... {{ transaction.gateway_display_name }} — <strong>{{ transaction.amount | money }}</strong>"
{% if transaction.gateway_display_name == "Vorkasse" %}
<br />
Bitte überweisen Sie den offenen Betrag an:<br />
<br />
<strong>Firma</strong><br />
IBAN: .........<br />
BIC: ...........<br />
Bank: ...........<br />
Verwendungszweck: Geben Sie bitte Ihre Bestellnummer an<br />
<br />
<p>Sobald wir den Betrag erhalten haben, erfolgt der Versand Ihrer Ware.<br>
(Bei Vorbestellungen berücksichtigen Sie bitte den angegebenen Auslieferungstermin)<p>
{% endif %}
Leider wir mir der Inhalt weder in der Vorschau, noch in der Bestellbestätigungs-Mail angezeigt, wenn ich per Vorkasse eine Bestellung aufgebe.
Mache ich da etwas falsch bzw. wie bekomme ich das Problem gelöst?
Vielen Dank im Voraus
MFG Robert
Hey @Robert-19
Danke für den Code aus unseren älteren Leitfäden und hier müssten wie schauen ob dieser nicht schon out-of-date sein könnte.
Man kann den folgenden Code probieren, dieser sollte aber innerhalb des "transaction section" eingefügt werden ca. da wo du den {% for transaction in transactions %}
Code findest. Das liegt daran, dass es pro Kauf mehrere Transaktionsmethoden geben kann. Wenn du den folgenden Code in die {% for transaction in transactions %}
loop einfügst könnte es klappen, ansonsten empfehle ich einen Experten zu konsultieren - gerne kann ich welche empfehlen.
{% if transaction.gateway_display_name contains 'Vorkasse' %}
Hier deine Argumente
{% endif %}
Halte bitte Ausschau in deiner E-Mail auf Notifications zu Antworten auf deine Fragen in der Community. Lass auch wissen, wenn du weitere Fragen hast zum obigen Thema oder generell zu deinem Shop und Business und gerne können wir das hier weiter besprechen!
Wir führen gerade eine kurze Umfrage zu Eurer Erfahrung in der Community durch mit 5 kurzen Fragen. Wenn Du mal 2-Min Zeit hast - die Umfrage ist auch anonym:
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
Hey @Gabe,
vielen Dank für die Unterstützung!
Den von mir zur Verfügung gestellten Code habe ich relativ weit am Ende eingefügt. Es kann natürlich sein, dass dieser nicht mehr up to date ist. Die Anleitung war auch schon etwas älter.
Die "transaction section" befindet sich ja unmittelbar unter "Zahlung".
Spielt es eine Rolle, wo man den Code in der Loop einfügt bzw. könntest du mir eine genauere Position vorschlagen, an welcher ich versuchen könnte den Code einzubinden?
Hey @Robert-19
Das muss man einfach mit Trial & Error testen. Gut an der Vorkasse ist dass du so viele Bestellungen testen kannst und keine Zahlung erfolgen muss da "Vorkasse". Probiere den Code irgendwo unterhalb der {% for transaction in transactions %}
Zeile um zu sehen, ob das klappt.
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
Hey @Gabe,
leider komme ich hierbei nicht viel weiter. Würde das Thema in die 60 Minuten Designzeit durch Shopify fallen oder wie kann man sich die Zusammenarbeit mit einem Experten vorstellen?
Ich bin mir nicht sicher, wo sich das Ende der Loop befindet. Es gibt da ja schon recht viele Möglichkeiten, wie ich den Code einsetzen kann.
Ja sende das an uns mit der Bitte das mit dem 60-Minuten Design Time anzuschauen! Füge auch alle Angaben hier im Leitfaden der E-Mail anbei so dass die das schneller bearbeiten können.
Um dir dabei behilflich zu sein, sende bitte eine E-Mail an unseren Support hier (https://bit.ly/3cwO7ym) 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
Hey @Gabe,
vielen Dank für die Rückmeldung.
Ich habe mich mal per Mail an Euch gewendet.
VG Robert
Hey @JazzyJ
Yes, and you can also place it directly under the "refund" code section around the lines 500-505:
<table class="row section">
<tr>
<td class="section__cell">
<table class="container">
<tr>
<td>
{% for transaction in transactions %}
{% if transaction.gateway_display_name contains 'Vorkasse' %}
<br />
Please transfer the amound to the follwoing bank account:<br />
<br />
<strong>Company_Name</strong><br />
IBAN: xxxxxxxxxxxxxxxxx<br />
BIC: xxxxxxxxxxxxxx<br />
Bank: YYYYYYYYYYY<br /><br/>
Reference: ZZZZZZZZZZZZZ<br />
<p>As soon as amount is received the fulfillment will be carried out.<br>
</p>
{% endif %}
{% endfor %}
</td>
</tr>
</table>
</td>
</tr>
</table>
The table class aligns the text so it doesn't indent wrongly.
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,
I placed all your code under this part of code (German version of the Order Notification)
<span>Zurückerstatten</span>
<br>
<small>{{ refund_method_title | capitalize }}</small>
</p>
</td>
<td class="subtotal-line__value">
<strong>- {{ transaction.amount | money }}</strong>
</td>
</tr>
{% endif %}
{% endfor %}
</table>
{% endif %}
{% endunless %}
</td>
</tr>
</table>
</td>
</tr>
</table>
</center>
</td>
</tr>
</table>
and before this code part starts:
<table class="row section">
<tr>
<td class="section__cell">
<center>
<table class="container">
<tr>
<td>
<h3>Kundeninformationen</h3>
</td>
</tr>
</table>
<table class="container">
<tr>
<td>
I'm glad that it works, but in my mails the whole "Vorkasse" payment text is shown twice - the second is shown right under the first "Vorkasse" text. But I didn't pasted it twice into the code.
Do you know how this could be fixed?
Update:
Someone in a Facebook Shopify Group told me the solution already @Gabe
It was one line necessary to add:
insert this:
{% break %}
before this:
{% endif %}
Here is the complete updated code snippet
<table class="row section">
<tr>
<td class="section__cell">
<table class="container">
<tr>
<td>
{% for transaction in transactions %}
{% if transaction.gateway_display_name contains 'Vorkasse' %}
<br />
Please transfer the amound to the follwoing bank account:<br />
<br />
<strong>Company_Name</strong><br />
IBAN: xxxxxxxxxxxxxxxxx<br />
BIC: xxxxxxxxxxxxxx<br />
Bank: YYYYYYYYYYY<br /><br/>
Reference: ZZZZZZZZZZZZZ<br />
<p>As soon as amount is received the fulfillment will be carried out.<br>
</p>
{% break %}
{% endif %}
{% endfor %}
</td>
</tr>
</table>
</td>
</tr>
</table>
See the previous post above to get to know where to place it.
Thanks to all in this thread for this solution.
Hey @beyondone
Ah super, war das in unserer privaten FB Gruppe?
Das stimmt....und so einfach! Man verwendet den {% break %}
Befehl, um die Schleife zu beenden, sobald die Bedingung erfüllt ist. Dadurch wird verhindert, dass der Code zweimal ausgeführt wird wie im folgenden Code Beispiel.
Durch das Hinzufügen des {% break %}
Befehls wird die Schleife gestoppt, sobald die Bedingung if transaction.gateway_display_name contains 'Vorkasse'
erfüllt ist und der Code wird nur einmal ausgeführt:
<table class="row section">
<tr>
<td class="section__cell">
<table class="container">
<tr>
<td>
{% for transaction in transactions %}
{% if transaction.gateway_display_name contains 'Vorkasse' %}
<br />
Bitte überweisen Sie den offenen Betrag an:<br />
<br />
<strong>Firma</strong><br />
IBAN: .........<br />
BIC: ...........<br />
Bank: ...........<br />
Verwendungszweck: Geben Sie bitte Ihre Bestellnummer an<br />
<br />
<p>Sobald wir den Betrag erhalten haben, erfolgt der Versand Ihrer Ware.<br>
(Bei Vorbestellungen berücksichtigen Sie bitte den angegebenen Auslieferungstermin)<p>
{% break %}
{% endif %}
{% endfor %}
</td>
</tr>
</table>
</td>
</tr>
</table>
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
Im Grunde muss man sicherstellen dass der Code innerhalb des "payment_details
"-Blocks eingefügt wird. Hier ist ein Beispiel, wie die "payment_details
"-Sektion in der Datei "order_confirmation.html
" aussehen könnte:
{% if order.payment_gateway_names[0] == "Vorkasse" %}
<h2>Zahlungsdetails</h2>
<p>Bitte überweisen Sie den offenen Betrag an:</p>
<p>Bank: {{ shop.name }}</p>
<p>IBAN: ...</p>
<p>BIC: ...</p>
<p>Verwendungszweck: Geben Sie bitte Ihre Bestellnummer an</p>
{% endif %}
Man kann auch sicherzustellen, dass die relevanten Zahlungsinformationen nur für die Vorkasse-Zahlung angezeigt werden und den Code in der "transaction"-Schleife einfügen wie folgendermaßen:
{% for transaction in transactions %}
{% if transaction.gateway_display_name contains 'Vorkasse' %}
Hier deine Argumente
{% endif %}
{% endfor %}
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 lieber Gabe.
Ich hoffe, dass es dir gut geht.
Ich bin gerade auch bei diesem Thema betreffend Vorauszahlung.
Ich habe nun zwei Varianten ausprobiert aber es funktioniert beides nicht.
1. Variante
2. Variante
Könntest du kurz über den Code schauen? Ev. siehst du ja grad was, das nicht richtig ist.
Es wäre mir eine tolle Hilfe 🙂
Vielen lieben Dank!
Nicole die Glitzerqueen
Hey Nicole! @GlitzerQueen
Tut mir leid das 👁️ ich erst jetzt. Hast du das lösen können?
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 Gabe
Vielen Dank für deine Antwort. Nein gelöst ist es leider immer noch nicht. Du hattest mir damals empfohlen, mit jemandem von Shopify Support zu schreiben (in einem anderen Chat). Das habe ich dann gemacht, aber sie konnten dies auch nicht lösen. Obwohl ich eigentlich das Gefühl habe, dass dies möglich sein sollte.
Du siehst, Situation ist noch unverändert.
Liebe Grüsse
Nicole von Glitter Creations
Ok du hast den folgenden Code eingesetzt aber es erscheint nichts?
{% if transaction.gateway_display_name == "TWINT - Vorauszahlung" %}
<strong>
<br />
<p>
Bitte überweise den offenen Betrag an:
</p>
<p>
<strong>Glitter Creations</strong><br />
IXXX: XXXX<br />
BXX: XXXX<br />
BXXX: XXXX<br />
Verwendungszweck: Gib bitte deine Bestellnummer an
</p>
<p>Nach Geldeingang versenden wir umgehend deine Bestellung</p>
<p>
TWINT: Zahlung an die Mobile-Nr. XXXX
</p>
</strong>
{% endif %}
</tr>
</table>
</p>
{% endif %}
{% endfor%}
{% endif %}
Das ist um die Transaktionsdetails darzustellen und dann eine spezifische Anweisung hinzufügen, wenn die Zahlungsmethode "TWINT - Vorauszahlung" ist.
Wenn nichts in der Bestellbestätigungs-E-Mail erscheint, kann es verschiedene mögliche Ursachen geben:
Die Bedingung ist nicht erfüllt: Das bedeutet, dass transaction.gateway_display_name
nicht den Wert "TWINT - Vorauszahlung" hat. Überprüfe die genaue Bezeichnung der Zahlungsmethode im Shop und stelle sicher, dass sie mit dem Wert im Code übereinstimmt.
Die Transaktionsvariable enthält keine Daten: Es ist möglich, dass die Variable transactions
leer ist oder nicht die erwarteten Daten enthält. Überprüfe, ob die Variable tatsächlich Daten enthält und ob die Struktur der Daten wie erwartet ist.
Liquid-Code Fehler: Wenn ein Fehler im Liquid-Code vorliegt, kann dies dazu führen, dass bestimmte Teile des Codes nicht ausgeführt oder angezeigt werden.
Um das Problem zu diagnostizieren:
Prüfe den Liquid-Code auf Fehler: Überprüfe, ob alle {% for %}
, {% if %}
, {% endif %}
, {% endfor %}
korrekt geschlossen sind und ob es keine offensichtlichen Syntaxfehler gibt.
Füge Debugging-Hinweise hinzu: man kann temporär einige Ausgaben in den Code einfügen, um zu überprüfen, welche Teile des Codes erreicht werden und welche nicht. Zum Beispiel:
<!-- Debugging Start -->
<p>Debugging: Start of the code</p>
{% if transaction.gateway_display_name == "TWINT - Vorauszahlung" %}
<p>Debugging: Inside the TWINT condition</p>
...
{% endif %}
<p>Debugging: End of the code</p>
<!-- Debugging End -->
Dadurch kann man sehen, ob der Code im Inneren des IF-Blocks überhaupt erreicht wird und an welcher Stelle eventuell ein Problem auftritt.
transactions
-Variable gibt.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 lieber Gabe
Vielen lieben Dank für deine ausführliche Antwort.
Sakis K. hat mir damals dabei geholfen und hat auch direkt in meinem Shop einiges ausprobiert aber er hat es auch nicht hingekriegt.
Ist es denn rein theoretisch überhaupt möglich, das manuell einzufügen oder geht das gar nicht?
Liebe Grüsse
Nicole
Hey @GlitzerQueen
Es geht darum es an der richtigen Stelle im Code zu platzieren und innerhalb den korrekten <span>
Tags. Siehe einen parallelen Thread von heute zum selben Thema hier.
VG,
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
Hey Nicole! @GlitzerQueen
Kannst du mal diesen Code ausprobieren:
{% if unique_gateways contains ”Twint” %}
….
Iban
Verwendungszweck
Betrag
Etc…
{% endif %}
Es scheint es wurde jetzt auch im anderen Leitfaden gelöst mit einem Code wie das folgende, dass auch in meinem Testshop gefunzt hat:
<table class="row">
<tr>
<td class="customer-info__item">
<h4>Versandmethode</h4>
<p>{{ shipping_method.title }}</p>
</td>
<td class="customer-info__item">
<h4>Zahlungsmethode</h4>
{% for transaction in transactions %}
{% if transaction.payment_method.title == "PayPal" %}
PayPal - Betrag von {{ order.total_price | money }} bezahlt
{% elsif transaction.payment_method.title == "Vorkasse" %}
Vorkasse - Zahlung bitte an [Ihre Bankdaten oder Zahlungsanweisungen]
{% else %}
{{ transaction.payment_method.title }}
{% endif %}
{% if (transaction.status == "success") and (transaction.kind == "authorization" or transaction.kind == "sale") %}
<p class="customer-info__item-content">
{% if transaction.payment_details.credit_card_company %}
{% capture credit_card_url %}notifications/{{ transaction.payment_details.credit_card_company | downcase }}.png{% endcapture %}
<img src="{{ credit_card_url | shopify_asset_url }}" class="customer-info__item-credit" height="24">
<span>Endet mit {{ transaction.payment_details.credit_card_last_four_digits }} — <strong>{{ total_price | money }}</strong></span>
{% else %}
{{ transaction.gateway | replace: "_", " " | capitalize }} — <strong>{{ transaction.amount | money }}</strong>
{% endif %}
</p>
{% endif %}
{% endfor %}
</td>
</tr>
</table>
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 Gabe
Seit gestern Abend bin ich am probieren, aber es klappt noch nicht ganz.
Ich habe den folgenden Code erfasst:
In der Bestätigungs-Email zeigt es dann folgendes an:
Ev. siehst du hier den Fehler in der Codierung?
Liebe Grüsse
Nicole von Glitter Creations
Hey Nicole! @GlitzerQueen
Poste mal deinen oben abgebildeten Code hier in den Thread so dass ich ihn testen kann.
VG,
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 Gabe
Sehr gerne, hier der code.
{% if transaction_size > 0 or payment_terms %}
<td class="customer-info__item">
<h4>Zahlungsmethode</h4>
{% for transaction in transactions %}
{% if transaction.payment_method.title == "PayPal" %}
PayPal - Betrag von {{ order.total_price | money }} bezahlt
{% elsif transaction.payment_method.title == "TWINT - Vorauszahlung" %}
Vorkasse - Zahlung bitte an [Ihre Bankdaten oder Zahlungsanweisungen]
{% else %}
{{ transaction.payment_method.title }}
{% endif %}
{% if (transaction.status == "success") and (transaction.kind == "authorization" or transaction.kind == "sale") %}
<p class="customer-info__item-content">
{% if transaction.payment_details.credit_card_company %}
{% capture credit_card_url %}notifications/{{ transaction.payment_details.credit_card_company | downcase }}.png{% endcapture %}
<img src="{{ credit_card_url | shopify_asset_url }}" class="customer-info__item-credit" height="24">
<span>Endet mit {{ transaction.payment_details.credit_card_last_four_digits }} — <strong>{{ transaction.amount | money }}</strong></span>
{% else %}
{{ transaction.gateway | replace: "_", " " | capitalize }} — <strong>{{ transaction.amount | money }}</strong>
{% endif %}
</p>
{% endif %}
{% endfor %}
</td>
Vielen Dank!
Nicole
Hey @GlitzerQueen
Mit deinem Code bekomme ich den folgenden Fehler:
Body html Liquid syntax error: 'endfor' is not a valid delimiter for if tags. use endif
Mit dem Code den ich oben gepostet habe bekomme ich keine Fehler. Insbesondere scheint der Fehler im deinem Code im Zusammenhang mit der Verwendung von "if" und "for" Tags zu liegen.
Um den Fehler zu beheben:
Korrekte Verwendung von "endif" und "endfor": Stelle sicher, dass du die Tags "endif" und "endfor" korrekt verwendest, um die "if" und "for" Bedingungen abzuschließen. Im ersten Codeabschnitt fehlt das "endif" nach dem inneren "for" Loop, was zu einem Fehler führt.
Konsistente Verwendung von Einrückungen: Achte darauf, dass die Einrückungen deiner Liquid-Tags korrekt sind. Die Tags sollten korrekt eingerückt sein, um die Struktur des Codes lesbar zu halten und Fehler zu vermeiden.
Hier ist eine überarbeitete Version des ersten Codeabschnitts mit den korrekten Liquid-Tags:
{% if transaction_size > 0 or payment_terms %}
<td class="customer-info__item">
<h4>Zahlungsmethode</h4>
{% for transaction in transactions %}
{% if transaction.payment_method.title == "PayPal" %}
PayPal - Betrag von {{ order.total_price | money }} bezahlt
{% elsif transaction.payment_method.title == "TWINT - Vorauszahlung" %}
Vorkasse - Zahlung bitte an [Ihre Bankdaten oder Zahlungsanweisungen]
{% else %}
{{ transaction.payment_method.title }}
{% endif %}
{% if (transaction.status == "success") and (transaction.kind == "authorization" or transaction.kind == "sale") %}
<p class="customer-info__item-content">
{% if transaction.payment_details.credit_card_company %}
{% capture credit_card_url %}notifications/{{ transaction.payment_details.credit_card_company | downcase }}.png{% endcapture %}
<img src="{{ credit_card_url | shopify_asset_url }}" class="customer-info__item-credit" height="24">
<span>Endet mit {{ transaction.payment_details.credit_card_last_four_digits }} — <strong>{{ transaction.amount | money }}</strong></span>
{% else %}
{{ transaction.gateway | replace: "_", " " | capitalize }} — <strong>{{ transaction.amount | money }}</strong>
{% endif %}
</p>
{% endif %}
{% endfor %}
</td>
{% endif %}
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
Mit 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, 2025Teil 2 - Wie die Prinzipien des UX-Designs dir dabei helfen können einen großartigen Shop ...
By Kai Sep 16, 2024