Problem: Ein Händler möchte in der Bestellbestätigungsmail die korrekte Lieferzeit anzeigen, die vom Lagerbestand abhängt. Bei Produkten mit Bestand “0”, die weiterverkauft werden können (Backorders aktiviert), wird fälschlicherweise die Lieferzeit für vorrätige Artikel angezeigt.
Technische Herausforderung: Nach dem Kauf zeigt Shopify einen veränderten Bestand an. Die Berechnung (aktueller Bestand + Bestellmenge) funktioniert nicht zuverlässig. Zusätzlich gibt Shopify bei negativem Bestand immer “0” aus, wenn {{line_item.variant.inventory_quantity}} verwendet wird.
Lösungsansätze:
Metafelder nutzen: Für jedes Produkt separate Metafelder anlegen (z.B. delivery_time_in_stock und delivery_time_backorder) und basierend auf dem Lagerstatus zum Kaufzeitpunkt abrufen
Liquid-Logik optimieren: Mit Schleifen den Bestand korrekt abrufen und setzen
Status: Die Diskussion bleibt offen mit der Frage, ob es alternative Liquid-Variablen gibt, die negative Bestände korrekt ausgeben.
Summarized with AI on October 29.
AI used: claude-sonnet-4-5-20250929.
ich lasse auf der Produktseite die Lieferzeit des jeweiligen Produktes anzeigen. Diese hängt von dem aktuellen Lagerbestand ab. Ich würde gerne zusätzlich diese Information auf der Bestellbestätigungsmail anzeigen lassen. Dies macht mir allerdings Probleme (es wird nicht immer die richtige Zeit angegeben)
Eine besondere Herausforderung ist ja meines Erachtens nach, dass man nach dem Kauf einen falschen Bestand hat. Ich habe im Code dann entsprechend den aktuellen Lagerbestand + die Bestellmenge als zu berückstichtigenden Lagerbestand genommen.
Trotzdem wird es teilweise falsch angezeigt. Aufgefallen ist es mir bei Produkten, deren Bestand “0” ist, die aber darüber hinaus weiterverkauft werden können. Die erhalten dann plötzlich die Lieferzeit als wäre das Produkt auf Lager.
Wobei es ja eigentlich so ist, dass wenn der Bestand “0” ist und 1 Stück verkauft wird, dann ist der Bestand -1 und wenn ich dann rechne -1+ Bestellmenge also +1 komme ich auf null und nicht auf einen positiven Bestand.
Gibt es hier jemanden, der dieses Problem bereits gelöst hat oder sich besser auskennt, was die Bestandsrechnung in Shopify angeht?
Wenn ich das richtig verstehe - du hast also Backorders aktiviert („continue selling“ = true). Kunde bestellt 1 Stück und nach dem Kauf: inventory_quantity = -1 und line_item.quantity = 1. Deine Berechnung: -1 + 1 = 0 - du denkst also Produkt ist verfügbar was nicht korrekt ist. Shopify zählt nicht auf „virtuellen Bestand“ – der korrekte Lagerstatus muss aus dem Zustand zum Kaufzeitpunkt stammen, nicht aus einem dynamisch berechneten Bestand nach dem Verkauf. Warum nicht bei jedem Produkt ein Metafeld - z. B. delivery_time_in_stock = “1–3 Werktage” und delivery_time_backorder = “Lieferzeit: ca. 7–10 Werktage” In der Bestellbestätigung greifst Du auf die Produkt-Metafelder zu, basierend auf dem zum Kaufzeitpunkt gültigen Lagerstatus. Aber in der kannst Du nicht dynamisch den Lagerbestand abrufen, weil das eine statische Mail ist, sprich, kein API-Zugriff.
das kannst du mit etwas Hexerei und Magie beheben.
In den Mails ist die Liquidlogik manchmal unlogisch. Du kannst im Detail anschauen, ob du mittels einer Schleife den Bestand abrufst und diesen dann korrekt setzt. So funktioniert es manchmal; das ist die technische Möglichkeit, um es einfach zu halten.
Ich habe nun festgestellt, dass Shopify als Bestand immer 0 ausgibt, wenn der Bestand < 1 ist. Also auch, wenn der Bestand eigentlich -3 ist, dann wird trotzdem 0 ausgegeben. Ich nutze {{line_item.variant.inventory_quantity}}. gibt es noch etwas anderes?