Thema: Zusätzliche Felder für Liefer-/Abholinformationen im Shopify-Checkout und Alternativen.
Aktueller Stand:
Checkout ist stark limitiert für Extrafelder; ein „neuer Checkout“ mit mehr Erweiterbarkeit wurde angekündigt, aber noch nicht verfügbar.
Funktionierende Workarounds: Felder auf der Cart-Seite (Cart-Notes/Line Item Properties), begrenzte Anpassung der Checkout-Formularoptionen, Metafelder, sowie Drittanbieter-Apps.
E-Mail-Benachrichtigungen:
Werte aus dem Warenkorb in Mails über line_item.properties ausgeben, nicht über cart.attributes. Beispiel: Schleife über line_items und properties, um z. B. „Ansprechpartner vor Ort“ anzuzeigen.
Dropdown/Optionen:
Dropdown als Feld im Cart möglich (als Line Item Property) und dann in der Mail anzeigen.
„Kundenfelder“ unterstützen kein Dropdown out-of-the-box; dafür wäre eine Custom-App über API oder Checkout UI Extensions nötig.
Buy Button:
Magic Fields funktioniert im Shop, aber nicht mit dem Buy Button. Der Buy Button unterstützt keine Custom Fields. Mögliche Lösung nur via JS Buy Button SDK und eigener HTML-Felder, die als Line Item Properties übergeben werden (komplex, Entwickler empfohlen).
Status/Outcome:
Kein endgültiger Abschluss; mehrere Codebeispiele/Links geteilt, Expertenkontakte angeboten. Diskussion offen. Hinweis: Code-Snippets sind zentral zum Verständnis.
Summarized with AI on December 29.
AI used: gpt-5.
für die Abwicklung der Lieferung (Container), benötigen wir vom Kunden weitere Infos…wie zum Beispiel (wo darf der Container abgestellt werden, wann soll er wieder abgeholt werden etc).
Habe ich die Möglichkeit im Checkout Prozess solche Inhalte abzufragen?
Bis dahin gibt es ein paar Workarounds die vielleicht helfen können, wie z. B. di folgenden:
Du kannst diese Kundeninformationen, wie z. B. wo darf der Container abgestellt werden, wann soll er wieder abgeholt werden usw. auf der Cart Page sammeln denn die Cart Page ist sehr Anpassungsfähig. Dieser eingebaute Notes Funktion erlaubt solche Infos zu sammeln die dann direkt in der Bestellung einsehbar sind für den Sachbearbeiter.
Du kannst die Checkout-Formularoptionen bearbeiten und ändern. Du kannst dann z. B. eins oder zwei der Felder dafür verwenden und sie erforderlich machen.
Du kannst unsere Metafelder verwenden die wir neulich verbessert haben. Kundenfelder sind im Anmarsch also aufgepasst:
@CichonTrautmann – ich müsst mir das selber ansehen … @Gabe hat da wirklich recht: das ist aus der Ferne leider gar nicht gut zu dabuggen. Wenn Du Interesse daran hast, lass es mich bitte einfach wissen.
Das wäre eigentlich nur über eine benutzerdefinierte App und unser API möglich. Um die Shopify API zu nutzen, um benutzerdefinierte Felder in den Standard-Checkout-Prozess zu integrieren, braucht man ein Entwicklerkonto bei Shopify um eine eigene Shopify-App zu erstellen.
Damit kann man calls über dem API machen, um Bestellinformationen und zusätzliche Felder zu speichern und abzurufen. Die Shopify API bietet eine Vielzahl von Endpunkten, die man verwenden kann, um die Informationen abzurufen und der Checkout API ermöglicht es, zusätzliche Felder im Checkout-Prozess hinzuzufügen und dann diese Informationen in der Bestellübersicht und in anderen Abschnitten Ihres Shopify-Adminbereichs anzuzeigen.
Oder du verwedest unsere neue Checkout Extensions, wie du hier lesen kannst. Gerne kann ich Experten empfehlen die das für euch machen können!
Wichtig wäre nur ein Feld, wo die Leute ihr Paket abholen können - ein Dropdown mit vorgegebenen Werten wäre optimal, die dann auch in der Bestellung wiedergegeben werden.
Ich glaube du bist sehr nahe am Ziel also nicht aufgeben!
Du hast also bereits die richtige Methode verwendet, um benutzerdefinierte Felder in das Cart-Template einzufügen. Um die eingegebenen Informationen in der Bestätigungs-E-Mail anzuzeigen, einfach das E-Mail-Template anpassen.
Da das E-Mail-Template auf der Bestellinformation basiert und nicht direkt auf dem Warenkorb, sollte man line_item.properties anstelle von cart.attributes verwenden.
Das folgende ist Theme-abhängig, ohne Gewähr und dient lediglich dazu dich in die richtige Richtung zu weisen! Hier ein Beispiel einer FOR-Loop:
{% for line_item in line_items %}
{% for p in line_item.properties %}
{% if p.first == 'Ansprechpartner vor Ort' %}
Ansprechpartner vor Ort: {{ p.last }}
{% endif %}
{% endfor %}
{% endfor %}
Füge den obigen Code in das E-Mail-Template ein, wo du die Informationen anzeigen möchtest. Der Code durchläuft alle Artikel in der Bestellung und zeigt den Wert des benutzerdefinierten Felds “Ansprechpartner vor Ort” an, falls vorhanden.
Um ein Dropdown-Feld mit vordefinierten Werten in Ihrem Cart-Template hinzuzufügen, können Sie folgenden Code verwenden:
Nicht vergessen, den Code im E-Mail-Template anzupassen, um den Wert dieses Dropdown-Felds anzuzeigen:
{% for line_item in line_items %}
{% for p in line_item.properties %}
{% if p.first == 'Paketabholort' %}
Paketabholort: {{ p.last }}
{% endif %}
{% endfor %}
{% endfor %}
Dadurch werden die benutzerdefinierten Felder in der Bestätigungs-E-Mail korrekt angezeigt, einschließlich eines Dropdown-Felds mit vordefinierten Werten.
Vielen Dank für deine Hilfe, aber mir ist etwas unklar:
Ich hab es mit dem App Magic Fields in dieser Version eingefügt: https://shop.vulcania300.bike/
Da erhält man dann einen Code, den man in seinen Templates einfügen kann und fertig.
Das wäre cool, wenn das Feld dort aufscheinen würde!
Bei Magicfields, das App, das ich gerade dafür nutze schreibt er mir, dass das mit dem App nicht funktioniert!
Kann Ich verstehen, dass du extra Infos vom Kunden über den Buy Button sammeln möchtest, aber leider werden Custom fields derzeit nicht vom Buy Button unterstützt.
Ggf. kann man das über eine komplexe Programmierung erreichen wie man hier lesen kann, und über die Ressourcen die ich weiter unten im O-Ton gepostet habe. Siehe weitere Leitfäden zum Thema hier.
Füge die Shopify Buy Button JS-Bibliothek in deinem HTML-Code ein:
Füge ein HTML-Element hinzu, in dem der Buy Button angezeigt wird, z. B.:
Füge das benutzerdefinierte Feld direkt in den HTML-Code ein, z. B.:
Passe das Shopify Buy Button-Script an, um das benutzerdefinierte Feld zu erfassen und als Line Item Property zu speichern. Hier ist ein Beispiel-Script:
document.addEventListener("DOMContentLoaded", function() {
var client = ShopifyBuy.buildClient({
domain: 'your-shop.myshopify.com',
storefrontAccessToken: 'your_storefront_access_token',
});
var ui = ShopifyBuy.UI.init(client);
ui.createComponent('product', {
id: 'your_product_id',
node: document.getElementById('product-component'),
options: {
// Ihre Buy Button-Optionen hier
}
});
// Event-Listener für den 'Add to Cart'-Button
document.querySelector('.shopify-buy__btn').addEventListener('click', function() {
var customField = document.getElementById('custom-field').value;
if (customField) {
// Aktualisieren Sie die Line Item Properties mit dem Wert des benutzerdefinierten Felds
var cart = ui.getCart();
var lineItems = cart.model.lineItems;
if (lineItems.length > 0) {
lineItems[0].properties = {
'Your custom field name': customField
};
cart.updateModel();
}
}
});
});
Ersetze ‘dein-shop.myshopify.com’ durch eure eigene Shopify-URL und ‘your_storefront_access_token’ durch deinen Storefront-Zugangstoken. Ersetze außerdem ‘your_product_id’ durch die ID des gewünschten Produkts.
Wenn der Kunde auf den Buy-Button klickt, wird der Wert des benutzerdefinierten Felds als Line Item Property gespeichert. Man kann diese Information dann in der Bestellung im Shopify-Adminbereich einsehen und bearbeiten.
Das obige Beispiel-Script dient lediglich als Ausgangspunkt und muss möglicherweise an eure spezifischen Anforderungen angepasst werden.
Gerne kann ich Agenturen empfehlen die dabei helfen können!
The JS Buy SDK is a lightweight library that allows you to build ecommerce into any website. It’s based on Shopify’s Storefront API and provides the ability to retrieve products and collections from your shop, add products to a cart, and checkout.