Liquid, JavaScript, Themes
Hallo zusammen,
wir würden gerne zu Shopify wechseln, sind aber leider auf einen echten Stopper gestoßen.
Wir benötigen eine Lieferzeitangabe auf der Produktdetailseite, im Warenkorb und idealerweise auch in der Bestellbetstätigungsmail, die abhängig vom Lagerbestand und der jeweils ausgewählten Variante funktioniert.
Das heißt wenn ein Artikel keinen Bestand hat, soll eine andere Lieferzeit ausgegeben werden.
Hat jemand eine Idee?
Hey @thiemo1
Du kannst eine App wie die folgenden (mit Free Plans) verwenden um die genauen Lieferzeiten auszugeben an versch, Orten im Shop:
Beispiel FOR-Schleife dafür (immer in einer Testkopie testen und ggf. einen Programmierer engagieren):
{% for variant in product.variants %}
{% if variant == selected_variant %}
<p>Lieferzeit: {{ variant.tags }}</p>
{% endif %}
{% endfor %}
Ein zusätzliches Metafeld in den Produktbeschreibungen und Produktvarianten erstellen entweder über die Shopify-Admin-Oberfläche oder mithilfe einer App wie "Custom Fields".
Sobald das Metafeld erstellt ist, es in den Produktbeschreibungen und Produktvarianten ausfüllen und dann in Ihren Liquid-Vorlagen (z.B. Produktdetailseite, Warenkorb und Bestellbestätigungs-E-Mail) verwenden. Um die Lieferzeiten anzuzeigen, einen Liquid-Code wie den folgenden verwenden:
<p>Lieferzeit: {{ product.metafield.delivery_time }} Tage</p>
"delivery_time"
muss durch den Namen des Metafeldes ersetzt werden.
Hey @Ben310,
tausend Dank für deine Support un die tollen Tipps.
Wenn ich dich richtig verstehe, können wir nur über ein JavaScript, eine Lieferzeit-Ausgabe realisieren die den Lagerbestand berücksichtigt, oder?
Da ein konkretes Beispiel bei uns wie folgt aussieht:
1. Ein Artikel/Variante hat einen Lagerbestand >= 1, zeige "Lieferzeit: 1-3 Tage"
2. Springt der Lagerbestand bei diesem Artikel auf <= 0, zeige "Lieferzeit: 10-14 Tage"
Hey @thiemo1
Ja, das wäre richtig denn hier müsstest du über dem Shopify API den aktuellen Bestand im Backend lesen und im Frontend ausweisen als Lieferzeit: X-Y Tage
Dafür bräuchte man einen J-Script der eine Conditional Logic verwendet. Die Delivery Times Apps können die generelle Lieferzeit auf der Produktseite anzeigen.
Das Impulse Theme kann das auch wie man hier sieht:
Da wird aber die Lieferzeit nicht angezeigt.
Du kannst auch eine Schleife im Liquid verwenden, die den Lagerbestand jeder Variante prüft, und den entsprechenden Lieferzeit-Text ausgibt. Hier ist ein CSS Beispielcode:
{% for variant in product.variants %}
{% if variant.inventory_quantity >= 1 %}
<p>Lieferzeit: 1-3 Tage</p>
{% else %}
<p>Lieferzeit: 10-14 Tage</p>
{% endif %}
{% endfor %}
Platziere diesen Code an der gewünschten Stelle im Produktseiten-Code. Dieser Code geht davon aus, dass jede Variante einen einzigartigen Lagerbestand hat.
// Variablen, die den aktuellen Lagerbestand und die Lieferzeit für jede Variante enthalten
var inventory = {
"variant1": {
"stock": 10,
"leadTime": 2
},
"variant2": {
"stock": 5,
"leadTime": 3
},
"variant3": {
"stock": 0,
"leadTime": 4
}
};
// Funktion zur Berechnung der Lieferzeit basierend auf dem aktuellen Lagerbestand und der ausgewählten Variante
function calculateLeadTime(variant) {
if (inventory[variant].stock > 0) {
return inventory[variant].leadTime;
} else {
return "Out of stock";
}
}
// Verfolgen der Varianteauswahl auf der Produktseite
$(document).on("change", ".variant-selector", function() {
var selectedVariant = $(this).val();
var leadTime = calculateLeadTime(selectedVariant);
// Anzeige der Lieferzeit auf der Produktseite
$("#lead-time-display").text(leadTime);
});
In diesem Beispiel werden die Variablen inventory
verwendet, um den aktuellen Lagerbestand und die Lieferzeit für jede Variante zu speichern. Die Funktion calculateLeadTime
wird verwendet, um die Lieferzeit basierend auf dem aktuellen Lagerbestand und der ausgewählten Variante zu berechnen. Die Auswahl der Variante wird mit Hilfe von jQuery verfolgt und das Skript wird ausgeführt, wenn eine Variante ausgewählt wird. Das Ergebnis der Berechnung wird dann auf der Produktseite angezeigt.
Es werden somit jQuery und einige Annahmen über die HTML-Struktur der Produktseite gemacht, um das Skript auszuführen.
Ich würde das nur in einer testumgebung testen und zusammen mit einem Programmierer/Experten!
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
@Gabe Vielen Dank für die vielen Tipps. Ich denke, nur die JavaScript Lösung könnte richtig funktionieren. Leider übersteigt die Implementierung meinen technischen Horizont. 😞
Kannst immer in einer Testumgebung testen und debuggen. Weitere Coding Experten findest du in unserem Design Forum, falls du da deine Frage auf Englisch stellen möchtest (bitte mit Beispiele, Schritte, und Screenshots). Die geben sehr gute Tipps!
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
Teil 2 - Wie die Prinzipien des UX-Designs dir dabei helfen können einen großartigen Shop ...
By Kai Sep 16, 2024Teil 1 - Wie die Prinzipien des UX-Designs dir dabei helfen können einen großartigen Shop ...
By Kai Sep 9, 2024Anpassungen des benutzerdefinierten Codes an Shopify-Themes (CSS) leicht gemachtIn diesem...
By Gabe Aug 28, 2024