Die Shopify-Checkout-Validierung ist eine Shopify Function aus der Cart and Checkout Validation API, die eine App in Ihrem Shop installiert. Shopify führt sie auf den eigenen Servern aus, sobald sich ein Warenkorb oder Checkout ändert. Gibt die Function einen Fehler zurück, zeigt der Checkout die Meldung an, und der Käufer kann die Bestellung erst abschließen, wenn er das Problem behebt. Sie läuft im normalen Checkout, bei Express-Buttons wie Shop Pay und Apple Pay, bei Headless-Checkouts und Entwurfsbestellungen — in jedem Shopify-Plan, wenn sie aus einer öffentlichen App stammt. Sie läuft nicht auf POS, bei Abo-Verlängerungen, Bestellbearbeitungen oder über die API erstellten Bestellungen. Sie kann eine Bestellung blockieren, aber den Warenkorb nicht ändern und keinen Bestand reservieren.
Zuletzt geprüft: 8. Oktober 2026, anhand der Entwicklerdokumentation und des Help Centers von Shopify. Die Quellen stehen am Ende.
Hinweis: OrderRules ist eine App für Checkout-Validierung. Dieser Leitfaden erklärt zuerst die Shopify-Plattform und dann, wie wir sie nutzen.

Was eine Validierungs-Function ist
Mit Shopify Functions können Apps eigene Logik in das Backend von Shopify einbringen. Jede Function-API deckt eine Aufgabe ab: Rabatte, Versandoptionen, Zahlungsarten und so weiter. Die Validierung ist diejenige, die entscheidet, ob ein Warenkorb zur Kasse gehen kann.
So funktioniert es:
- Eine App liefert die Function mit. Sie wird zu WebAssembly kompiliert und mit der App bereitgestellt. Sie installieren die App; Code fassen Sie nicht an.
- Shopify führt sie aus, nicht Ihr Theme. Die Function läuft in der Infrastruktur von Shopify, nicht im Browser des Käufers. JavaScript abschalten oder die Seite bearbeiten umgeht sie nicht.
- Sie liest einen Input und gibt Fehler zurück. Shopify übergibt den Warenkorb und zugehörige Daten. Die Function gibt eine Liste von Fehlern zurück, jeweils mit einer Meldung und einem Ziel (der ganze Warenkorb oder ein bestimmtes Feld).
- Der Checkout zeigt die Meldung. Leere Liste: Der Checkout geht weiter. Fehler vorhanden: Shopify zeigt die Meldungen und blockiert den Abschluss, bis der Käufer etwas ändert.
Shopify führt die Function an mehreren Punkten der Customer Journey aus: bei Interaktionen im Warenkorb, bei Interaktionen im Checkout und beim Abschluss des Checkouts. Eine Function kann prüfen, auf welchem Schritt sie gerade läuft, und nur im Checkout blockieren, sodass das Hinzufügen zum Warenkorb nie fehlschlägt.
Shopify hält Functions klein und schnell. Jeder Lauf hat strenge Limits für Instruktionen und Input-Größe, die Logik muss also einfach und die Daten kompakt sein.
Hier ein vereinfachtes Beispiel in JavaScript für das aktuelle Target cart.validations.generate.run. Es dient der Veranschaulichung und ist nicht der Code von OrderRules:
// Simplified example, not production code.
// Input comes from a GraphQL input query (cart lines, buyer identity, metafields).
export function cartValidationsGenerateRun(input) {
const limits = input.shop.limits?.jsonValue ?? {}; // written by the app ahead of time
const errors = [];
for (const line of input.cart.lines) {
const productId = line.merchandise.product?.id;
const remaining = limits[productId];
if (remaining !== undefined && line.quantity > remaining) {
errors.push({
message: `Only ${remaining} left for today. Lower the quantity to continue.`,
target: "$.cart",
});
}
}
return { operations: [{ validationAdd: { errors } }] };
}
Beachten Sie, was fehlt: keine Datenbankabfrage, kein API-Aufruf, kein „zähle die Bestellungen von heute“. Die Function sieht nur, was in ihrem Input steht. Das prägt alles Folgende.
Wo sie läuft und wo nicht
Shopify dokumentiert, auf welchen Oberflächen Validierungs-Functions laufen. Die Tabelle folgt der Referenz der Cart and Checkout Validation API.
| Oberfläche | Validierung läuft? | Hinweise |
|---|---|---|
| Warenkorb und Checkout im Onlineshop | Ja | Warenkorb und Checkout sind getrennt aufgeführt; beide unterstützt |
| Shop Pay, Apple Pay, Google Pay, PayPal Express, Jetzt kaufen | Ja | Als Storefront Accelerated Checkout aufgeführt |
| Headless-Storefronts (Storefront API) | Ja | Hydrogen und eigene Frontends eingeschlossen |
| B2B-Checkout | Ja | Firmenkunden durchlaufen dieselbe Validierung |
| Entwurfsbestellungen (Admin und Rechnungs-Checkout) | Ja | Als Draft Order (Admin and Checkout) und Shopify Admin aufgeführt |
| Shopify POS | Nein | Verkäufe im Laden werden nicht validiert |
| Bestellungen aus Abo-Verlängerungen | Nein | Nur der erste Abo-Checkout wird validiert |
| Bestellbearbeitungen | Nein | Wer eine Bestellung nach dem Kauf bearbeitet, umgeht die Validierung |
| Create Order API | Nein | Bestellungen, die andere Apps oder Integrationen anlegen |
| Vorbestellung und Erst testen, dann kaufen | Nein | Kaufoptionen mit späterer Zahlung werden nicht unterstützt |
„Lässt sich nicht umgehen“ stimmt also nicht. Ein Käufer kann die Validierung im Onlineshop oder über einen Express-Button nicht überspringen. Aber eine Bestellung über POS, eine Verlängerung, eine Bearbeitung oder die API läuft nie durch sie. Wenn Sie sich auf ein Limit verlassen, prüfen Sie, welche dieser Kanäle Ihr Shop nutzt.
Was eine Function sieht
Eine Function deklariert eine Input-Abfrage in GraphQL, und Shopify befüllt sie bei jedem Lauf. Nützliche Felder sind unter anderem:
- Warenkorbpositionen: Menge, Variante, Produkt, Gewicht, Positionsattribute.
- Käuferidentität: ob der Käufer angemeldet ist, und bei Kunden Felder wie Anzahl der Bestellungen und ausgegebener Betrag.
- Metafelder: am Shop, an Produkten, Varianten und Kunden.
- Warenkorbattribute: zum Beispiel ein auf der Warenkorbseite gewähltes Lieferdatum.
- Der Schritt der Customer Journey: Interaktion im Warenkorb, Interaktion im Checkout oder Abschluss des Checkouts.
Was sie bei einer öffentlichen App nicht kann: das Netzwerk aufrufen. Sie kann den Server der App während des Checkouts nicht fragen: „Wie viele Bestellungen gab es heute?“ Stattdessen zählt die App an anderer Stelle. Sie empfängt die Bestellbenachrichtigungen von Shopify, aktualisiert ihre Summen und schreibt sie in Metafelder. Die Function liest diese Metafelder beim nächsten Lauf.
Deshalb sind Zählerstände in einer Function Snapshots. Sie sind so aktuell wie der letzte Metafeld-Schreibvorgang, nicht live.
Was sie kann und was nicht
Sie kann mit einer Meldung blockieren. Das ist ihre gesamte Ausgabe. Meldungen können den ganzen Warenkorb oder ein bestimmtes Checkout-Feld betreffen, und eine App kann Sie Ihren eigenen Wortlaut schreiben lassen.
Sie kann keine Mengen ändern. Eine Validierungs-Function kann keine Menge senken, keine Position entfernen und keinen Preis ändern. Die alten Shopify Scripts konnten den Warenkorb stillschweigend bearbeiten; die Validierung kann das nicht. Der Käufer liest die Meldung und korrigiert den Warenkorb. Andere Function-APIs wie Cart Transform oder Rabatte übernehmen Änderungen am Warenkorb, und sie blockieren den Checkout nicht.
Sie kann keinen Bestand und keine Zeitfenster reservieren. Die Function liest einen Snapshot und sagt Ja oder Nein. Sie hält nichts zurück. Wenn zwei Käufer fast gleichzeitig für die letzte Einheit oder den letzten Platz in einem Lieferzeitfenster zur Kasse gehen, können beide „1 übrig“ lesen und beide durchkommen. Die Validierung macht Limits bei normalem Traffic zuverlässig. Sie garantiert nicht, dass Sie nie darüber liegen.
Bis zu 25 Validierungs-Functions pro Shop. Shopify begrenzt, wie viele Validierungs-Functions gleichzeitig aktiv sein dürfen. Mehrere Apps können jeweils eine hinzufügen, und alle laufen; sobald eine davon einen Fehler zurückgibt, ist der Checkout blockiert.
Pläne
- Öffentliche App-Store-Apps mit Functions funktionieren in jedem Shopify-Plan. Für eine Validierungs-App brauchen Sie kein Plus.
- Custom Apps mit Functions brauchen Shopify Plus. Das betrifft Shops, die ihre eigene private Function bauen.
- Shopify Scripts sind abgeschaltet. Scripts laufen seit dem 30. Juni 2026 nicht mehr. Viele Mengenlimits steckten früher in Line-Item-Scripts. Wenn das bei Ihnen der Fall war, lesen Sie Shopify Scripts durch Functions für Mengen- und Checkout-Regeln ersetzen.
Theme-JavaScript vs. Validierung
Viele Limit-Tools laufen im Theme: Sie blenden einen Button aus, begrenzen ein Mengenfeld oder zeigen auf der Warenkorbseite eine Warnung. Das ist nützlich, um Limits früh zu zeigen. Durchsetzung ist es nicht.
| JavaScript im Theme oder auf der Warenkorbseite | Validierungs-Function | |
|---|---|---|
| Normaler Checkout im Onlineshop | Nur wenn der Käufer mit aktivem JavaScript über die Warenkorbseite geht | Ja |
| Buttons für Shop Pay, Apple Pay, Google Pay auf Produktseiten | Nein, sie überspringen die Warenkorbseite | Ja |
| Direkte Checkout-Links | Nein | Ja |
| Headless-Storefronts | Nein, es gibt kein Theme | Ja |
| Entwurfsbestellungen | Nein | Ja |
| POS | Nein | Nein |
| Abo-Verlängerungen, Bestellbearbeitungen, API-Bestellungen | Nein | Nein |
| Kann Limits vor dem Checkout anzeigen | Ja | Nein, nur Meldungen, wenn der Warenkorb geprüft wird |
| Lässt sich durch Abschalten von JavaScript umgehen | Ja | Nein |
Keines von beiden deckt POS oder Verlängerungen ab. Am besten nutzen Sie beides: Hinweise im Onlineshop, damit Käufer Limits früh sehen, und eine Validierungs-Function als harten Stopp am Checkout.
Für Liefertermine gilt dasselbe. Eine Lieferdatumsauswahl graut volle oder geschlossene Tage im Browser aus, aber Express-Buttons und direkte Checkout-Links überspringen die Seite, auf der der Kalender sitzt. Nur eine Validierungs-Function prüft das gewählte Datum am Checkout erneut. Sehen Sie sich an, wie sich Apps zur Lieferdatumsauswahl für Shopify bei der Checkout-Validierung schlagen.
Wie OrderRules sie nutzt
OrderRules installiert eine Validierungs-Function. Sie legen Regeln in der App fest; die App führt die Zählerstände und schreibt sie in Metafelder; die Function liest sie am Checkout und blockiert Bestellungen, die gegen eine Regel verstoßen. Sie prüft:
- Öffnungszeiten und Feiertage: schließt den Checkout außerhalb Ihrer Zeiten.
- Bestellobergrenzen: tägliche Obergrenzen für den ganzen Shop, dazu wöchentliche und monatliche in den kostenpflichtigen Plänen.
- Obergrenzen für Produkte, Varianten und Kollektionen: gemeinsame Summen über alle Käufer.
- Mindestbestellmenge und Schrittmenge: pro Produkt oder Variante, pro Bestellung.
- Limits pro Kunde: Bestellungen, Einheiten, Ausgaben oder Gewicht pro Zeitraum, für angemeldete Kunden.
- Liefertermine und Abholzeitfenster im Advanced-Plan: Bestellschluss, gesperrte Termine und Obergrenzen pro Zeitfenster.
Die Meldung für jeden Regeltyp lässt sich in den Einstellungen bearbeiten. Regeln werden auf jeder Oberfläche aus der Tabelle oben geprüft, auf der die Validierung läuft. POS-Bestellungen und Verlängerungen werden nicht blockiert, zählen aber trotzdem für Ihre Limits. Zählerstände sind Snapshots, deshalb können zwei fast gleichzeitige Checkouts für den letzten Platz beide durchgehen.
Die Durchsetzung am Checkout ist in jedem Plan enthalten, auch im kostenlosen Starter-Plan. Alle Details: wo OrderRules-Regeln geprüft werden: Kompatibilität und Einschränkungen.
Weiterführende Artikel
- Bestelllimits in Shopify einrichten
- Überverkäufe verhindern: Strategien für Shops mit begrenzter Kapazität
- Bestelllimits pro Kunde: ein Leitfaden
- Dynamische Hinweise im Onlineshop
- Die besten Apps zur Lieferdatumsauswahl für Shopify, verglichen nach Checkout-Validierung
- Native Shopify-Bestelllimits vs. Apps (2026)
- Wo OrderRules-Regeln geprüft werden: Kompatibilität & Einschränkungen
- Shopify Scripts durch Functions für Mengen- und Checkout-Regeln ersetzen
Quellen
- Shopify.dev: Cart and Checkout Validation Function API (Targets, unterstützte und nicht unterstützte Oberflächen, Limit pro Shop)
- Shopify.dev: Eine Cart and Checkout Validation Function bauen
- Shopify.dev: Shopify Functions (Verfügbarkeit nach Plan für öffentliche und Custom Apps)
- Shopify.dev-Changelog: Shopify Scripts will be deprecated on June 30, 2026
- Shopify Help Center: Umstieg von Scripts auf Functions
In Ihrem Shop ausprobieren
Installieren Sie OrderRules aus dem Shopify App Store. Die Checkout-Validierung ist in jedem Plan enthalten, und kostenpflichtige Pläne haben eine 14-tägige kostenlose Testphase.