Eine Lieferdatum-Auswahl zeigt Tage an. Die Validierung erzwingt sie. In Shopify bedeutet Validierung eine Cart and Checkout Validation Function: eine Prüfung, die vor der Zahlung auf den Servern von Shopify läuft und die Bestellung stoppt, wenn das Datum fehlt, geschlossen oder voll ist. Sie läuft in jedem Shopify-Tarif und bei jedem Weg in den Checkout, auch Shop Pay, Apple Pay und Buy it now. Nur eine Auswahl auf der Checkout-Seite braucht Plus.
Warum eine Auswahl allein ungültige Tage durchlässt
Eine Auswahl auf der Produkt- oder Warenkorbseite ist eine Anzeige. Sie graut geschlossene und volle Tage im Browser des Kunden aus, mehr nicht. Bestellungen ohne gültiges Datum kommen trotzdem durch, wenn:
- Der Kunde einen Express-Button nutzt. Buy it now, Shop Pay, Apple Pay und Google Pay auf der Produktseite führen direkt in den Checkout, die Auswahl im Warenkorb läuft also nie. Siehe Buy it now überspringt das Lieferdatum.
- Der Tag sich füllte, während der Kunde zahlte. Die Auswahl zeigte beim Laden der Seite „1 übrig“. Jemand anderes hat ihn genommen.
- Der Warenkorb von gestern ist. Der Kunde wählte ein Datum, kam nach dem Annahmeschluss zurück und bestellte.
- Der Warenkorb-Drawer die Auswahl nicht zeigt, oder das Theme geändert und der Auswahl-Block entfernt wurde.
- Jemand das Lieferdatum im Warenkorb von Hand oder mit einem Skript ändert.
Auch Shopifys eigene kostenlose Variante, eine per Theme-Code auf der Warenkorbseite ergänzte Datumsauswahl, hat dieselbe Lücke: Sie erfasst ein Datum, aber nichts prüft es im Checkout.
Die Prüfungen, die eine Lieferdatum-Validierung ausführen sollte
Das sind die Prüfungen, die OrderRules im Checkout ausführt, mit der Meldung, die der Kunde standardmäßig sieht:
| Prüfung | Was sie abfängt | Standardmeldung |
|---|---|---|
| Datum erforderlich | Gar kein Datum, oft bei Buy it now oder Shop Pay | Please choose a delivery date before checking out. |
| Datum erlaubt | Vergangene Tage, innerhalb der Vorlaufzeit oder nach dem Annahmeschluss, ein Wochentag ohne Lieferung, jenseits Ihres Buchungshorizonts | That delivery date is no longer available. Please choose another. |
| Geschlossener Tag | Ein Sperrtermin, etwa ein Feiertag | We don't deliver on the selected date. Please choose another. |
| Tag voll | Der Tag hat Ihre maximalen Bestellungen pro Lieferdatum erreicht | Delivery on {date} is fully booked. Please choose another date. |
| Zeitfenster | Kein Zeitfenster gewählt oder das Zeitfenster ist voll | Please choose a delivery time. / That delivery time is full. Please choose another. |
| Produktlimit pro Datum | Mehr Einheiten eines Produkts, als für diesen Tag übrig sind | Only {n} left for delivery on {date}. Please reduce the quantity or choose another date. |
| Methode | Nur-Abholung- und Nur-Lieferung-Artikel gemischt, oder die falsche Methode | Some items in your cart require different fulfillment methods and can't be purchased together. |
| Abholung | Kein Abholdatum, kein Abholort, keine Abholzeit; ein geschlossener oder voller Abholtag oder -slot | Please choose a pickup date before checking out. (und fünf weitere) |
Deckt die Checkout-Prüfung einer App nur die erste Zeile ab, stoppt sie Bestellungen ohne Datum, aber keine überbuchten.
Drei Wege zur Validierung in Shopify
1. Eine eigene Validierungs-Function bauen. Ein Entwickler schreibt eine Cart and Checkout Validation Function, die das Lieferdatum des Warenkorbs liest und einen Fehler zurückgibt, wenn es nicht erlaubt ist. Sie läuft in jedem Tarif. Eine Function kann während der Ausführung keine Datenbank abfragen, Ihre erlaubten Tage und Buchungsstände müssen also vorher in ein Metafeld geschrieben und aktuell gehalten werden. Das ist der größte Teil der Arbeit. Shopifys Validierungs-Functions erklärt behandelt die Mechanik.
2. Eine Datumsauswahl-App mit Checkout-Validierung nutzen. Stellen Sie vor der Installation fünf Fragen:
- Nutzt sie eine Cart and Checkout Validation Function oder nur Theme-JavaScript?
- Stoppt sie Buy it now-, Shop Pay- und Apple Pay-Bestellungen ohne Datum?
- In welchen Shopify-Tarifen läuft die Prüfung?
- Prüft sie volle Tage und Zeitfenster im Checkout erneut oder blendet sie sie nur in der Auswahl aus?
- Können Sie die Meldungen bearbeiten, in jeder Sprache, in der Sie verkaufen?
Unser Vergleich der Lieferdatum-Apps zeigt, welche Apps im Checkout durchsetzen und welche nur anzeigen.
3. In Shopify Plus die Auswahl in den Checkout setzen. Eine Checkout-UI-Erweiterung zeigt den Kalender auf der Checkout-Seite, sodass ihn auch Express-Käufer sehen. Auch das ist nur eine Anzeige: Kombinieren Sie sie mit einer Validierungs-Function, sonst kann ein Datum übersprungen werden oder veraltet sein.
In OrderRules einrichten
- Öffnen Sie im Advanced-Tarif Ihre Verfügbarkeitsregel und aktivieren Sie Lieferdatum beim Checkout verlangen (und Zeitfenster verlangen, wenn Sie Zeitfenster nutzen).
- Öffnen Sie in Shopify Einstellungen → Checkout, scrollen Sie zu Checkout-Regeln und prüfen Sie, ob die OrderRules-Regel aktiv ist.
- Legen Sie fest, was die Validierung prüft: Maximale Bestellungen pro Lieferdatum, Max./Tag für jedes Zeitfenster, Produktlimits mit Tageslimits zählen nach → Lieferdatum und Sperrtermine.
- Bearbeiten Sie unter Checkout-Nachrichten jede Meldung oder wenden Sie ein Sprachpaket an.
- Testen Sie ohne Datum, mit einem geschlossenen und mit einem vollen Tag, über den Warenkorb, Buy it now und Shop Pay. Ein Entwicklershop ist der sicherste Ort zum Ausprobieren.
Was die Validierung nicht abfangen kann
- Zwei Checkouts in derselben Sekunde um den letzten Platz können beide durchgehen. Die Validierung liest, was gebucht ist; sie hält keine Sperre.
- Kurz nach einem Annahmeschluss kann ein Datum den Checkout noch passieren, bis die App ihre Liste der erlaubten Tage aktualisiert hat. Die Auswahl auf der Seite blendet den Tag sofort aus.
- Bestellungen, die den Checkout umgehen, werden nicht geprüft: Shopify POS, Abo-Verlängerungen, im Admin erstellte und als bezahlt markierte Bestellungen sowie Bestellungen anderer Apps oder der Admin API. Sie zählen trotzdem auf Ihre Limits.
- Änderungen nach dem Kauf. Wenn Sie das Datum einer Bestellung im Shopify-Admin ändern, wird das nicht geprüft und verschiebt ihren Platz nicht.
- Postleitzahlen und Zonen. OrderRules prüft die Adresse nicht. Um nicht in ein Gebiet zu liefern, lassen Sie es aus Ihren Shopify-Versandzonen weg.
Mehr dazu unter Kompatibilität und bekannte Einschränkungen.