WooCommerce
Läuft in einem Shop, den wir selbst betreiben, und die ganze Kette ist von aussen nachgemessen — vom Warenkorb bis zum signierten Anfrageobjekt an die Wallet. Wenn etwas klemmt, klemmt es an Ihrem Aufbau, nicht am Paket.
Schon eingebaut? So legen Sie fest, welche Ware geprüft wird
Als Datei: readme.txt · PRUEFPLAN.md
Einbau
EdelVerify — Altersprüfung über den Ausweis
Contributors: edelbyte Tags: woocommerce, alterspruefung, age-verification, jugendschutz, altersnachweis Requires at least: 6.4 Tested up to: 7.0 Requires PHP: 8.1 Stable tag: 1.2.0 License: GPL-2.0-or-later License URI: https://www.gnu.org/licenses/gpl-2.0.html
Sperrt den Checkout für altersbeschränkte Produkte, bis das Alter über den Ausweis bestätigt ist. Grenze je Kategorie und je Artikel — 16 oder 18.
Beschreibung
Ihre Kundschaft weist das Alter mit dem eigenen Ausweis nach — mit der EdelVerify-App, die den Chip im Pass oder Ausländerausweis liest, oder über die maschinenlesbaren Zeilen auf der Datenseite. Übermittelt wird eine einzige Angabe: Grenze erfüllt, ja oder nein. Kein Name, kein Geburtsdatum, keine Ausweiskopie — es gibt in Ihrem Shop also auch nichts, was Sie speichern, schützen oder löschen müssten.
Welche Wege es genau gibt und was jeder davon belegt, steht weiter unten unter «Wer kommt durch, und womit». Lesen Sie den Abschnitt vor dem Einbau: Die vier Wege belegen nicht dasselbe, und die Entscheidung darüber treffen Sie.
Die Grenze bestimmen Sie: 16 oder 18, je Kategorie, mit einer Vorgabe für den ganzen Shop. Bier ab 16 neben Spirituosen ab 18 ist damit eine Auswahl und kein zweiter Shop. Liegt Gemischtes im Warenkorb, gilt die strengste Grenze.
Die Kategorien wählen Sie aus einer Liste aus — abgetippte Slugs gibt es nicht mehr. Unterkategorien zählen mit: Wer «Spirituosen» wählt, erfasst auch «Spirituosen › Gin». Für die Fälle, die in keine Kategorie passen, steht in jeder Produktmaske ein Auswahlfeld «Altersprüfung»; die Produktliste zeigt in einer eigenen Spalte, was für jeden Artikel gilt und woher es kommt.
Der Riegel sitzt auf dem Server. Alles, was im Browser zu sehen ist, ist Anzeige: Wer das Prüffenster mit den Entwicklerwerkzeugen wegräumt, kommt trotzdem nicht an der Bestellung vorbei. Das Plugin hängt an beiden Kassenwegen — am klassischen Checkout und am Block-Checkout, den WooCommerce heute standardmässig ausliefert.
Ist EdelVerify nicht erreichbar, wird die Bestellung abgewiesen, nicht durchgelassen. Bei einer Altersprüfung ist die sichere Richtung die unbequeme.
Was Sie brauchen
- Das Plugin-Archiv: https://verify.edelbyte.ch/v1/woocommerce/edelverify-plugin.zip
- Ein Schlüsselpaar von uns — einen öffentlichen (
pk_test_…) und einen geheimen (sk_test_…). Wie Sie es bekommen, steht gleich darunter. - WooCommerce
- Kundschaft mit einem Ausweis und der EdelVerify-App auf dem Telefon (für den Testbetrieb nicht nötig) — siehe «Wer kommt durch, und womit»
Woher Sie die Schlüssel bekommen
Das Konto entsteht automatisch. Sie buchen unter https://verify.edelbyte.ch/preise einen Tarif — mit Karte oder TWINT —, und Zugang samt Schlüsselpaar steht unmittelbar danach bereit. Niemand muss dafür mit uns sprechen.
Ausprobieren kostet nichts: Der Testbetrieb ist dauerhaft gratis. Ein Testschlüssel verlangt keinen echten Ausweis und lässt den ganzen Ablauf trotzdem durchlaufen — Sie können die Einbindung fertig bauen, bevor Sie sich für einen Tarif entscheiden.
Die Adressen Ihres Shops (mit und ohne www, dazu Ihr Testsystem) und die Altersgrenze, die Ihre Ware verlangt, tragen Sie im Konto unter «Einstellungen» selbst ein.
Wenn Sie lieber vorher reden:
- E-Mail: info@edelbyte.ch
- Telefon: 044 500 25 04
Was es kostet
Ab 19 Franken im Monat, keine Gebühr je Prüfung, monatlich kündbar und ohne Vorauszahlung. Über dem Kontingent kostet eine bestandene Prüfung 10 Rappen, nie mehr als der nächsthöhere Tarif — abgeschaltet wird die Prüfung nie. Die Stufen stehen unter https://verify.edelbyte.ch/preise. Bezahlt wird mit Karte oder TWINT.
Der Testbetrieb kostet nichts, und zwar dauerhaft. Was Sie damit nicht bekommen, sagen wir gleich dazu: echte Nachweise. Dafür braucht es einen bezahlten Zugang.
Wer kommt durch, und womit
Geprüft wird über den Ausweis Ihrer Kundschaft. Es gibt dafür vier Wege, und sie belegen nicht dasselbe. Das ist keine Fussnote, sondern die Entscheidung, die Sie treffen:
- Staatliche E-ID — ein vom Bund signierter Nachweis, geprüft gegen das eidgenössische Vertrauensregister. Der stärkste Nachweis, den es gibt. Heute abgeschaltet: Der Bund hat die Einführung am 30. Juni 2026 verschoben und nennt kein neues Datum. Der Weg ist gebaut und wird freigeschaltet, sobald die E-ID produktiv ausgegeben wird. Bis dahin bekommt Ihre Kundschaft ihn nicht zu sehen — es gibt keinen Wahlschirm.
- Ausweischip (App) — die EdelVerify-App liest den Chip im Pass oder Ausländerausweis. Belegt ist damit, dass das Dokument körperlich vorlag: Der Chip gibt nur etwas heraus, wenn ihm die abgelesenen Zeilen der Datenseite gezeigt werden. Nicht belegt ist, dass das Dokument echt ist — dafür fehlt die Prüfung gegen die Länderzertifikate. Das ist die Vorgabe, und für die meisten Läden die richtige Antwort.
- Ausweiszeilen (App) — dieselbe App liest die maschinenlesbaren Zeilen statt des Chips. Belegt sind formal gültige Zeilen eines amtlichen Ausweises: Prüfziffern gehen auf, Bauform stimmt, Dokument nicht abgelaufen. Nicht belegt ist, dass das Dokument vorlag — ein Foto der Rückseite genügt. Die Kamera unterscheidet ein Dokument nicht von seinem Abbild.
- Ausweiszeilen (Browser) — dieselben Zeilen, gelesen im Prüffenster, ohne App. Gerechnet wird auf unserem Server, nach denselben Regeln. Zusätzlich fehlt hier die Zusage, dass überhaupt gelesen wurde: Das Fenster läuft im Browser Ihrer Kundschaft. Das ist die schwächste Stufe, die es gibt.
Die beiden Zeilen-Stufen sind ab Werk aus. Ihr Shop verlangt den Chip, solange Sie nichts anderes sagen. Wer sie freischalten will, schreibt uns an info@edelbyte.ch — und liest vorher, was oben unter «nicht belegt» steht.
Welche Dokumente durchkommen:
- Schweizer Pass und Ausländerausweis — über den Chip, ab Werk.
- Schweizer Identitätskarte — sie trägt keinen Chip und kommt deshalb über die Ausweiszeilen durch. Sie funktioniert also nur, wenn Sie diese Stufe freigeschaltet haben. Die biometrische Identitätskarte mit Chip ist ab 2. November 2026 beantragbar.
- Ausländische Pässe und Ausweise mit maschinenlesbaren Zeilen.
Die App, die Chip und Zeilen liest, steht seit dem 20. August 2026 für Android im Play Store: https://play.google.com/store/apps/details?id=ch.edelbyte.edelverify Die Fassung fürs iPhone ist in Arbeit. Ein Datum nennen wir dafür nicht, weil die Prüfzeit bei Apple nicht in unserer Hand liegt. Wer kein Android-Gerät hat, kommt heute nur über die Ausweiszeilen im Browser durch — und auch das nur, wenn Sie diese Stufe freigeschaltet haben.
Installation
- Archiv herunterladen: https://verify.edelbyte.ch/v1/woocommerce/edelverify-plugin.zip Dann Plugins → Installieren → Plugin hochladen, diese Datei wählen, installieren und aktivieren.
- WooCommerce → Einstellungen → EdelVerify öffnen.
- Öffentlichen und geheimen Schlüssel eintragen — das Paar, das wir Ihnen geschickt haben (siehe «Woher Sie die Schlüssel bekommen»). Fangen Sie mit den Testschlüsseln an:
pk_test_…undsk_test_…. - Unter Umfang entscheiden, wie weit die Prüfung reicht.
*Ganzer Shop* heisst: Jeder gefüllte Warenkorb wird geprüft. Das ist die Vorgabe und die richtige Antwort für einen reinen Spirituosen-, Tabak- oder Vape-Laden. Wer daneben Zubehör ohne Altersgrenze führt, stellt auf *Nur ausgewählte Kategorien und Artikel*.
- Unter Altersgrenze (Vorgabe) wählen, was gilt, wo weder eine Kategorie noch der Artikel etwas anderes sagt. Ab Werk 18.
- Bei Umfang *Nur ausgewählte …*: unter Kategorien ab 16 und **Kategorien ab 18** die betroffenen Warengruppen anklicken. Beide Felder zeigen Ihren Kategoriebaum eingerückt; mit Strg bzw. Cmd wählen Sie mehrere aus.
Unterkategorien zählen mit. Wer «Spirituosen» wählt, erfasst damit auch «Spirituosen › Gin» und alles andere darunter — Sie müssen den Baum nicht von Hand nachpflegen, und eine morgen angelegte Unterkategorie ist vom ersten Tag an mitgeschützt.
Steht eine Kategorie in beiden Listen, gilt 18. Liegt Gemischtes im Warenkorb, gilt ohnehin die strengste Grenze.
Eine Kategorie kann ihre Elternkategorie nicht unterbieten: Wer «Spirituosen ab 18» gewählt hat, macht «Spirituosen › alkoholfrei» damit nicht zu 16. Wollen Sie das, wählen Sie statt der Elternkategorie ihre Unterkategorien einzeln aus.
- Einzelne Artikel, die in keine dieser Kategorien passen: In der Produktmaske unter Produktdaten → Allgemein steht das Feld Altersprüfung mit den Werten *wie die Kategorien vorgeben*, *immer ab 16* und *immer ab 18*.
Es kann nur verschärfen, nie lockern. Einen Artikel *ohne* Prüfung verkaufen Sie, indem Sie ihn aus der betroffenen Kategorie nehmen — ein Feld, mit dem sich die Prüfung einzeln abschalten liesse, gibt es mit Absicht nicht.
Was am Ende für welchen Artikel gilt, steht unter Produkte in der Spalte «Altersprüfung», samt der Quelle: am Artikel, über die Kategorie oder ganzer Shop.
- Uns die Adressen Ihres Shops melden, damit wir sie als erlaubte Herkunft hinterlegen (info@edelbyte.ch). Das ist kein Feld im Plugin: Die Liste liegt bei uns, und solange für Ihren Shop keine Adresse darin steht, darf jede beliebige Seite Prüfungen auf Ihren öffentlichen Schlüssel starten. Vor dem Kundenbetrieb gehört sie deshalb gefüllt.
- Verbindung prüfen anklicken. Der Test sagt Ihnen in vier Zeilen, ob der Dienst erreichbar ist, ob beide Schlüssel angenommen werden, welche Grenzen gelten und ob Ihre Adresse als Herkunft freigegeben ist.
- Probekauf machen — bitte wirklich. Der beiliegende
PRUEFPLAN.mdführt Sie in zehn Minuten durch alles, was zählt: die gesperrte Kasse ohne Nachweis, die vollständige Prüfung bis zur durchgegangenen Bestellung, die Ablehnung einer zu jungen Person, die beiden Grenzen 16 und 18 und das Verhalten bei einer Störung. Ein Einbau, den niemand nachgemessen hat, ist eine Vermutung.
Wichtig zu Schritt 6 und 7: Der öffentliche Schlüssel darf nur von den Adressen aus Prüfungen starten, die bei uns hinterlegt sind. Läuft Ihr Shop unter mehreren Adressen — mit und ohne www, dazu eine Testumgebung — gehören alle dort hinein, sonst schlägt die Prüfung genau auf einer davon fehl.
Testbetrieb ohne Ausweis
Ein Schlüssel, der mit pk_test_ beziehungsweise sk_test_ beginnt, verlangt keinen echten Ausweis. Die Prüfung steht vier Sekunden auf PENDING — damit die Abfrage im Shop wirklich einmal durchläuft — und geht dann durch. Im Shop sehen Sie damit den vollständigen Ablauf bis zur abgeschickten Bestellung, ohne dass jemand ein Dokument zückt.
Zwei Dinge, die Sie dabei wissen müssen:
- Ohne weitere Angabe nimmt eine Testprüfung immer den glücklichen Ausgang. Der Fall, den Ihr Shop am seltensten sieht und am dringendsten können muss, ist der andere: zu jung. Ihn bestellen Sie mit
test_outcome— im Shop selbst gibt es dafür kein Feld, wohl aber in Abschnitt 5 des beiliegendenPRUEFPLAN.md, samt fertigemcurl-Aufruf. - Test- und Livebetrieb berühren sich nie. Ein Nachweis aus dem Testbetrieb lässt sich mit einem Live-Schlüssel nicht einlösen und umgekehrt. Entschieden wird das ausschliesslich am Schlüssel. Am Tag der Umstellung tauschen Sie zwei Zeichenfolgen aus, sonst nichts.
Die vollständige technische Anleitung — Schnittstelle, Fehlerschlüssel, Webhook, Testausgänge — steht unter https://verify.edelbyte.ch/entwickler
Häufige Fragen
Sieht mein Shop das Geburtsdatum?
Nein. Weitergegeben wird ausschliesslich die Angabe, ob die verlangte Grenze erfüllt ist. Weder Ihr Shop noch Sie selbst erfahren Name, Geburtsdatum oder Ausweisnummer. Gerechnet wird das Alter dort, wo der Ausweis gelesen wird; was Ihren Shop erreicht, ist ein Ja oder ein Nein.
Welche Altersgrenzen gibt es?
16 und 18. Geprüft wird gegen eine Schwelle, nicht auf ein Geburtsdatum — mehr gibt der Nachweis nicht her. Ein Feld, in das man 21 eintragen könnte, ohne dass es wirkt, wäre schlimmer als keines.
Wie wirkt sich ein gemischter Warenkorb aus?
Es gilt die strengste Grenze. Ein Sixpack neben einer Flasche Gin macht den ganzen Warenkorb zu einem 18er-Warenkorb — die Alternative wäre, die Bestellung aufzuteilen, und das kann eine Kasse nicht.
Muss die Kundschaft nach jeder Warenkorbänderung neu prüfen?
Nein, solange die Grenze nicht steigt. Ein Nachweis ab 18 löst auch Ware ab 16 ein. Umgekehrt nicht: Wer sich für Bier ausgewiesen hat und dann eine Flasche Gin dazulegt, wird erneut gefragt.
Wie lange gilt eine bestätigte Prüfung?
So lange, wie es im EdelVerify-Admin für Ihren Shop eingestellt ist, standardmässig dreissig Tage. Danach fragt der Shop erneut. Der Nachweis wird bei jedem Bestellabschluss frisch gegen EdelVerify geprüft — ein zurückgezogener Nachweis fällt damit sofort auf.
Muss sich ein angemeldeter Stammkunde jede Woche neu ausweisen?
Nein. Ist «Nachweis am Kundenkonto» eingeschaltet (WooCommerce → Einstellungen → EdelVerify, ab Werk an), hängt der Nachweis am Konto statt an der Sitzung. Wer angemeldet ist, wird nach einer bestandenen Prüfung nicht erneut gefragt, solange der Nachweis gilt — und auch nicht am zweiten Gerät: Am Telefon geprüft heisst am Rechner nicht mehr gefragt.
Wer als Gast bestellt, weist sich wie bisher je Sitzung aus.
Am Konto steht ausschliesslich, dass die Altersgrenze erfüllt war, bis wann, in welcher Betriebsart und zu welcher Prüfung das gehört. Kein Geburtsdatum, kein Name, keine Ausweisnummer — der Shop bekommt sie ohnehin nie zu sehen. Wird das Kundenkonto gelöscht, geht der Eintrag mit; über *Werkzeuge → Persönliche Daten exportieren* und *… löschen* ist er einzeln zugänglich.
Geprüft wird trotzdem bei jeder Bestellung neu. Der Eintrag am Konto ist ein Aufbewahrungsort, kein Freibrief: Ein zurückgezogener Nachweis, eine heruntergesetzte Gültigkeitsdauer oder eine verschärfte Mindeststufe wirken sofort.
Was passiert bei einer Störung?
Die Bestellung wird abgewiesen. Ein Ausfall darf keine ungeprüfte Bestellung durchlassen.
Funktioniert es mit dem Block-Checkout?
Ja. Das Plugin hängt an woocommerce_checkout_process für den klassischen Weg und an den Store-API-Haken für den Block-Checkout. Beide Wege treffen dieselbe Entscheidung an derselben Stelle im Code.
Und wenn jemand die Store-API direkt anspricht?
Dann greift derselbe Riegel. Das ist genau der Fall, für den die serverseitige Prüfung da ist.
Ich baue eine eigene Oberfläche. Woran erkenne ich die Schranke?
Am Feld extensions.edelverify in den Antworten von /wp-json/wc/store/v1/cart und /wp-json/wc/store/v1/checkout:
"extensions": { "edelverify": { "pruefung_noetig": true, "grenze": 16, "erfuellt": false } }
grenze ist die echte Grenze dieses Warenkorbs — bei gemischtem Inhalt die strengste, bei leerem Warenkorb die Vorgabe des Shops.
Damit lässt sich die Prüfung anbieten, sobald der erste altersbeschränkte Artikel im Warenkorb liegt — und nicht erst, wenn die Kundschaft die ganze Adresse eingetippt hat und die Bestellung mit einem 409 abgewiesen wird.
Drei Angaben, mehr steht dort nicht: keine Kennung, kein Nachweis, kein Nonce. Diese Antwort ist für jeden lesbar, der den Warenkorb-Token hat.
erfuellt ist Anzeige, nicht Erlaubnis. Wer den Wert im Browser umbiegt, biegt seine eigene Bildschirmanzeige um; die Bestellung wird trotzdem am Server geprüft.
Changelog
1.2.0
- Kategorien werden ausgewählt statt abgetippt: zwei Listen, «ab 16» und «ab 18», mit dem Kategoriebaum darin. Das Textfeld mit den Slugs entfällt
- Ein bestehender Eintrag wird beim ersten Aufruf nach dem Update übernommen. Slugs, die es nicht mehr gibt, führen zu Umfang «ganzer Shop» und zu einem Hinweis im Backend — nie zu stiller Unterdeckung
- Neu ein Umfang: «ganzer Shop» oder «nur ausgewählte». Bisher stand diese Entscheidung nirgends — sie hing daran, ob das Kategoriefeld leer war
- Altersgrenze je Artikel: Auswahlfeld in der Produktmaske, für die Fälle, die in keine Kategorie passen. Es kann nur verschärfen, nie lockern
- Spalte «Altersprüfung» in der Produktliste — sie zeigt, was für jeden Artikel gilt und woher es kommt
- Eine ausgewählte Kategorie, die gelöscht wurde, macht den ganzen Warenkorb prüfpflichtig statt still niemanden mehr zu schützen
1.1.1
- Nach bestandener Prüfung steht in Warenkorb und Kasse eine grüne Zeile «Alter bestätigt: über 16/18» — vorher lud die Kasse neu und zeigte nichts
- Anleitung ergänzt: Bezugsort des Archivs, Weg zu den Schlüsseln, wo die Kategorien stehen, die Meldung der erlaubten Herkunft, der Testbetrieb und der Probekauf zum Schluss
1.1.0
- Altersgrenze einstellbar: 16 oder 18, je Kategorie, mit Vorgabe für den Shop
- Bei gemischtem Warenkorb gilt die strengste Grenze
- Der Beleg an der Bestellung hält die tatsächlich geprüfte Grenze fest
extensions.edelverify.grenzemeldet die echte Grenze statt pauschal 18- Ein Shop, der nichts umstellt, prüft unverändert alles gegen 18
1.0.0
- Riegel für klassischen Checkout und Block-Checkout
- Einstellungsseite unter WooCommerce → Einstellungen → EdelVerify
- Verbindungstest für Erreichbarkeit, beide Schlüssel und Herkunft
- Hinweis im Backend, solange die Schlüssel fehlen
Prüfplan
Damit nehmen Sie den Einbau selbst ab, ohne uns zu fragen. Geht ein Punkt nicht durch, schicken Sie ihn uns mit der Nummer — dann wissen wir sofort, wo wir suchen.
Prüfplan — EdelVerify für WooCommerce
Diese Datei beantwortet eine einzige Frage: Woran erkennen Sie, dass der Riegel wirklich hält?
Die Einbauanleitung steht in readme.txt. Sie führt bis dahin, dass alles eingerichtet *aussieht*. Das genügt bei einer Altersprüfung nicht — eine abgeschaltete Schranke sieht auf der Bestellseite genauso aus wie eine funktionierende, solange niemand das Alter bestätigt hat und trotzdem bestellt.
Wer die Punkte 1 bis 7 abgearbeitet hat, hat es gemessen und muss es nicht mehr glauben. Rechnen Sie mit einer knappen Stunde.
Neu: die Kategorien werden ausgewählt, nicht abgetippt. Zwei Listen mit Ihrem Kategoriebaum darin, «ab 16» und «ab 18», dazu ein Auswahlfeld je Artikel für die Fälle, die in keine Kategorie passen. Ein bestehender Slug-Eintrag wird beim ersten Aufruf nach dem Update übernommen — Punkt 6 misst nach, dass dabei nichts verlorengegangen ist. Ein Shop, der nichts umstellt, prüft weiterhin alles gegen 18; das misst Punkt 5.
0. Was Sie brauchen
- Einen Shop, in dem eine Testbestellung nicht stört — ein Staging-System oder ein frisch aufgesetzter Shop. Punkt 3 legt Bestellungen an.
- Beide Schlüssel aus dem EdelVerify-Admin unter «Shops». Nehmen Sie die Testschlüssel (
pk_test_…,sk_test_…). Damit lässt sich jeder Ausgang auf Bestellung herbeiführen, auch der, den Sie sonst nie zu sehen bekämen. curlund eine Kommandozeile. Der halbe Plan läuft ohne Browser, und das ist Absicht: Wer nur die Oberfläche prüft, prüft genau den Weg, den ein Umgeher nicht nimmt.
Der geheime Schlüssel gehört nicht in eine Chatnachricht, kein Ticket und keinen Screenshot. Er ist der Riegel; wer ihn hat, stellt sich Nachweise selbst aus. Fällt er hinaus, ziehen Sie ihn im EdelVerify-Admin zurück und tragen einen neuen ein — das dauert eine Minute und ist immer die richtige Entscheidung.
1. Installation
Plugins → Installieren → Plugin hochladen → edelverify-plugin.zip → aktivieren| Prüfen | Erwartet |
|---|---|
| Plugin-Liste | «EdelVerify — Altersprüfung über den Ausweis», aktiv |
| Oben im Backend | Gelber Hinweis «Schlüssel fehlen» |
WooCommerce → Einstellungen | Reiter EdelVerify ist da |
Der gelbe Hinweis ist kein Schönheitsfehler, sondern die erste bestandene Prüfung: Das Plugin sagt von sich aus, dass es noch nicht arbeiten kann.
2. Konfiguration und Verbindungstest
Unter WooCommerce → Einstellungen → EdelVerify:
| Feld | Wert |
|---|---|
| Adresse des Dienstes | https://verify.edelbyte.ch |
| Öffentlicher Schlüssel | pk_test_… |
| Geheimer Schlüssel | sk_test_… |
| Umfang | Ganzer Shop für Punkt 5, Nur ausgewählte … für Punkt 6 |
| Altersgrenze (Vorgabe) | ab 18 Jahren — gilt, wo weder Kategorie noch Artikel etwas anderes sagt |
| Kategorien ab 16 | leer für Punkt 5; für Punkt 6 z. B. «Bier» |
| Kategorien ab 18 | leer für Punkt 5; für Punkt 6 z. B. «Spirituosen» |
Die Grenze je Kategorie setzen Sie, indem Sie die Kategorie in die eine oder die andere Liste aufnehmen. Beide Listen zeigen Ihren Kategoriebaum eingerückt; Unterkategorien zählen mit, «Spirituosen» erfasst also auch «Spirituosen › Gin». Steht eine Kategorie in beiden Listen, gilt 18. Liegt Gemischtes im Warenkorb, gilt die strengste Grenze.
Die Grenze je Artikel steht in der Produktmaske unter *Produktdaten → Allgemein*, Feld «Altersprüfung». Sie kann nur verschärfen, nie lockern. Was am Ende gilt, steht unter *Produkte* in der Spalte «Altersprüfung».
Speichern, dann Verbindung prüfen. Vier Zeilen müssen grün sein: Erreichbarkeit, beide Schlüssel, Kategorien — die stehen dort mit Namen, nicht mit Nummern — und die Grenze, die dort im Klartext steht. Lesen Sie sie: Sie ist die eine Zahl, die im Streitfall zählt, und ein Auswahlfeld liest niemand nach.
Die Herkunft ist der häufigste Stolperstein. Der öffentliche Schlüssel darf nur von Adressen aus Prüfungen starten, die im EdelVerify-Admin hinterlegt sind. Läuft der Shop unter mehreren Adressen — mit und ohne www, dazu ein Staging-System —, gehören alle dorthin. Sonst schlägt die Prüfung genau auf einer davon fehl, und zwar meist auf der, die Sie nicht getestet haben.
Zum Gegenprobieren: Ändern Sie ein Zeichen im geheimen Schlüssel und drücken Sie noch einmal. Der Test muss rot werden. Wird er grün, prüft er nichts.
3. Der Riegel — ohne jede Altersbestätigung
Der wichtigste Abschnitt. Geprüft wird gegen die Store-API, nicht über die Oberfläche: Das ist derselbe Weg, den der Block-Checkout intern nimmt, und gleichzeitig der Weg, den jemand nähme, der die Schranke umgehen will.
Für einen Shop unter https://ihr-shop.example liegt fertig bei:
./scripts/pruefe-shop.sh https://ihr-shop.exampleEs misst drei Behauptungen nach:
- Ein Artikel ohne Altersgrenze lässt sich bestellen.
- Ein altersbeschränkter Artikel wird abgewiesen.
- Die Abweisung kommt aus EdelVerify (
edelverify_age_required) und nicht zufällig von woanders — einer fehlenden Versandart etwa.
Das Skript legt Bestellungen an (Zahlungsart «Nachnahme»). Führen Sie es nicht gegen einen Shop aus, in dem echte Bestellungen liegen. Es geht auch nicht von den Kategorien Ihres Shops aus, sondern von denen des Demo-Shops (
zubehoer,liquids) — für den eigenen Shop die beiden Stellen im Skript anpassen.
Der Stand für entkoppelte Oberflächen. Wer eine eigene Storefront, eine App oder eine kopflose Oberfläche baut, muss die Schranke anzeigen können, bevor die Kundschaft die Adresse eingetippt hat. Dafür hängt das Plugin drei Angaben an die Store-API:
curl -s https://ihr-shop.example/wp-json/wc/store/v1/cart -b kekse.txt \
| python3 -c "import sys,json; print(json.load(sys.stdin).get('extensions',{}).get('edelverify'))"| Warenkorb | Erwartet |
|---|---|
| leer | {'pruefung_noetig': False, 'grenze': <Vorgabe>, 'erfuellt': True} |
| Artikel ohne Altersgrenze | pruefung_noetig: False |
| altersbeschränkter Artikel, ungeprüft | pruefung_noetig: True, erfuellt: False |
| derselbe, nach bestandener Prüfung | pruefung_noetig: True, erfuellt: True |
nur Bier (bier:16) | grenze: 16 |
Bier und Gin (spirituosen:18) | grenze: 18 — die strengste gewinnt |
grenze ist seit der zweiten Schwelle die echte Grenze dieses Warenkorbs, nicht mehr pauschal 18. Bei leerem Warenkorb steht dort die Vorgabe des Shops: Ein Client soll wissen, womit er zu rechnen hat, bevor die erste Flasche im Korb liegt.
Kommt None zurück, ist das Plugin älter als diese Angabe oder der Block-Support fehlt. Steht dort ein av_… oder eine Kennung, melden Sie es uns — dort gehört nichts hin ausser diesen drei Werten.
Beide Kassenwege einzeln prüfen. WooCommerce liefert heute den Block-Checkout aus, viele Shops laufen noch klassisch, und das Plugin hängt an zwei verschiedenen Haken:
| Weg | Haken im Plugin | Wie prüfen |
|---|---|---|
| Block-Checkout / Store-API | woocommerce_store_api_cart_errors | das Skript oben |
| Klassischer Checkout | woocommerce_checkout_process | Seite mit [woocommerce_checkout] aufrufen und von Hand bestellen |
Beide müssen abweisen. Greift nur einer, hat der Shop eine Kasse ohne Schloss — und es fällt niemandem auf, weil die andere hält.
4. Eine vollständige Prüfung, von Anfang bis Ende
Testschlüssel sprechen den Prüfdienst des Bundes gar nicht erst an. Sie stehen vier Sekunden auf PENDING — damit die Abfrageschleife wirklich durchläuft — und nehmen dann den Ausgang, den Sie bestellt haben.
- Altersbeschränkten Artikel in den Warenkorb legen.
- Zur Kasse. Es erscheint der Hinweis mit dem Knopf «Alter bestätigen».
- Klicken. Das Fenster geht auf, mit QR-Code.
- Nach wenigen Sekunden wird es grün.
- Jetzt nicht neu laden, sondern warten, bis die Seite es von sich aus tut.
Punkt 5 ist der Fehler, den fast jede Einbindung einmal macht. «Grün» heisst: die Prüfung ist bestanden. Es heisst nicht, dass Ihr Shop davon weiss — die Rückmeldung an
/wp-json/edelverify/v1/confirmläuft in diesem Augenblick erst los. Wer hier neu lädt, bricht sie ab. Der Nachweis wird nur einmal ausgeliefert und ist damit verbrannt: Die Seite kommt mit derselben Schranke zurück, und für die Kundschaft sieht es aus, als hätte die Prüfung nichts bewirkt.
- Bestellen. Die Bestellung geht durch.
WooCommerce → Bestellungen: Die Spalte EdelVerify zeigt den Beleg.
Was in der Bestellung stehen muss und was nicht:
| Feld | Inhalt |
|---|---|
edelverify_verified | 1 |
edelverify_checked_at | Zeitpunkt |
edelverify_min_age | die tatsächlich durchgesetzte Grenze — 16 bei einem Bier-Warenkorb, 18 bei Gin |
edelverify_mode | test |
edelverify_check_ref | acht Zeichen, zum Wiederfinden im EdelVerify-Admin |
| der Nachweis selbst | steht nirgends — er ist eingelöst, nicht abgelegt |
Steht dort ein av_…, ist etwas falsch: Der Nachweis ist ein Inhaberpapier und gilt dreissig Tage. Wer ihn aus dem Bestellexport abschreibt, kauft damit einen Monat lang ohne Prüfung.
Steht in edelverify_min_age pauschal 18, obwohl der Warenkorb nur Bier enthielt, ist der Beleg falsch — dann läuft eine ältere Fassung des Plugins. Der Beleg muss die Grenze festhalten, gegen die wirklich geprüft wurde; das ist der ganze Zweck der Zeile.
5. Der Fall, den Sie am seltensten sehen und am dringendsten können müssen
Ein Shop, der nur den Erfolgsfall geprüft hat, hat die Altersprüfung nicht geprüft. Mit Testschlüsseln lässt sich jeder Ausgang bestellen — dafür sind sie da.
Der Ausgang wird beim Start der Prüfung mitgegeben. Am schnellsten von Hand:
# Prüfung mit dem gewünschten Ausgang beginnen
curl -s -X POST https://verify.edelbyte.ch/api/v1/verifications \
-H "x-api-key: $SK" -H 'content-type: application/json' \
-d '{"reference":"pruefplan","test_outcome":"under_18"}'
# vier Sekunden warten, dann den Stand holen
sleep 5
curl -s "https://verify.edelbyte.ch/api/v1/verifications/<id>" -H "x-api-key: $SK"test_outcome | Erwartet | Was der Shop tun muss |
|---|---|---|
success | SUCCESS, age_ok: true, Nachweis dabei | durchlassen |
under_18 | SUCCESS, age_ok: false, kein Nachweis | abweisen |
failed | FAILED, error_code: test_failed | abweisen |
expired | EXPIRED | abweisen, neu anbieten |
ueber_18 (Tippfehler) | 400 invalid_test_outcome | — |
SUCCESS heisst «die Prüfung ist abgeschlossen», nicht «alt genug». Massgeblich ist age_ok. Eine Einbindung, die nur auf den Status schaut, lässt bei under_18 durch — und merkt es nie, weil dieser Fall im Alltag fast nie vorkommt.
`over_18` ist nicht `age_ok`. Bei einer Prüfung gegen 16 steht in
over_18auch dannfalse, wenn die Person die Grenze erfüllt — geprüft wurde ja gegen 16, nicht gegen 18. Eine Einbindung, die weiterhin nurover_18liest, weist damit jede bestandene 16er-Prüfung ab. Im 18er-Betrieb fällt das nie auf, weil dort beide Felder dasselbe sagen. Nachgemessen an der laufenden Anlage:python3 scripts/api-vertragstest.py, Abschnitt 10.
Im Shop durchspielen: Kasse aufrufen, Prüfung starten, und wenn das Fenster rot wird, trotzdem bestellen. Die Bestellung muss abgewiesen werden.
6. Die zweite Schwelle — Bier ab 16, Gin ab 18
Nur nötig, wenn Sie zwei Grenzen führen. Wer alles gegen 18 prüft, überspringt diesen Abschnitt; Punkt 5 hat für ihn bereits alles gemessen.
Stellen Sie den Umfang auf «Nur ausgewählte …», wählen Sie unter «Kategorien ab 16» die Kategorie *Bier* und unter «Kategorien ab 18» die Kategorie *Spirituosen*.
| Warenkorb | Erwartet |
|---|---|
| nur Bier | Streifen sagt «über 16», Prüffenster sagt «Über 16 bestätigt» |
| nur Gin | Streifen sagt «über 18» |
| Bier und Gin | Streifen sagt «über 18» — die strengste Grenze gewinnt |
| Bier, geprüft, dann Gin dazulegen | Kasse geht wieder zu |
Die letzte Zeile ist die wichtige. Sie misst, ob das Plugin ein «ja» für 16 in einen Warenkorb ab 18 hinüberträgt. So führen Sie sie herbei:
- Nur Bier in den Warenkorb, Prüfung bestehen, Kasse ist offen.
- Innerhalb von drei Minuten eine Flasche Gin dazulegen.
- Zur Kasse. Sie muss zu sein und nach einer neuen Prüfung verlangen.
Drei Minuten, weil das Plugin ein bestandenes Ergebnis so lange zwischenspeichert. Bliebe die Kasse offen, wäre der Zwischenspeicher an die Grenze nicht gebunden — und das Loch wäre exakt drei Minuten breit und für niemanden sichtbar.
- Danach die Prüfung wiederholen. Jetzt läuft sie gegen 18 und die Kasse öffnet wieder.
- Zum Gegenprobieren die Flasche Gin wieder hinauswerfen: Der Nachweis ab 18 löst auch den Bier-Warenkorb ein, es ist keine neue Prüfung nötig.
Am Bestellbeleg prüfen: edelverify_min_age steht bei der Bier-Bestellung auf 16 und bei der gemischten auf 18. Steht überall 18, hält der Beleg die falsche Grenze fest.
Ohne Browser, direkt gegen die Schnittstelle — dasselbe in drei Aufrufen:
# 16er-Prüfung starten
curl -s -X POST https://verify.edelbyte.ch/api/v1/verifications \
-H "x-api-key: $SK" -H 'content-type: application/json' \
-d '{"reference":"pruefplan","min_age":16,"test_outcome":"success"}'
sleep 5
# Stand holen — ACHTUNG: over_18 ist hier false, age_ok ist true
curl -s "https://verify.edelbyte.ch/api/v1/verifications/<id>" -H "x-api-key: $SK"
# Der Nachweis ab 16 löst Ware ab 18 NICHT ein
curl -s -X POST https://verify.edelbyte.ch/api/v1/proofs/verify \
-H "x-api-key: $SK" -H 'content-type: application/json' \
-d '{"proof":"av_…","min_age":18}' # → valid: false| Aufruf | Erwartet |
|---|---|
min_age: 16 beim Start | 201, Antwort trägt min_age: 16 |
min_age: 17, 21, "18", null, 0 | 400 invalid_min_age |
Start ohne min_age | 201 mit der Vorgabe Ihres Kontos (ab Werk 18) |
| Nachweis ab 16 → Ware ab 18 | 200 mit valid: false |
| Nachweis ab 18 → Ware ab 16 | 200 mit valid: true |
Einlösen mit min_age: 17 | 200 mit valid: false — hier gibt es kein 4xx |
7. Fail-closed — jede Störung endet in einer gesperrten Kasse
Nach jedem Fall die Einstellung wieder zurücksetzen.
| Fall | Wie herbeiführen | Erwartet |
|---|---|---|
| Prüfstelle weg | Adresse des Dienstes auf https://127.0.0.1:9 | Kasse zu, Antwort nach ≤ 10 s |
| Geheimer Schlüssel falsch | ein Zeichen ändern | Kasse zu |
| Kein geheimer Schlüssel | Feld leeren | Kasse zu |
| Öffentlicher Schlüssel falsch | ein Zeichen ändern | Fenster geht gar nicht erst auf |
| Herkunft nicht hinterlegt | Adresse im EdelVerify-Admin entfernen | 403 origin_not_allowed, Kasse zu |
| Nachweis verfälscht | in der Sitzung edelverify_proof ein Zeichen ändern | Kasse zu |
| Nachweis abgelaufen | im EdelVerify-Admin die Gültigkeit auf 0 Tage stellen | Kasse zu |
| Schlüssel gewechselt | nach bestandener Prüfung sk_ austauschen | Kasse sofort zu |
| Prüfung noch offen | eine PENDING-Kennung an /wp-json/edelverify/v1/confirm senden | 422 not_verified |
| Nachweis schon abgeholt | dieselbe Kennung zweimal senden | 2. Mal 409 proof_consumed |
| Umfang «Ganzer Shop» | umstellen | der ganze Shop wird geprüft, gegen die Vorgabe |
| Umfang «Nur ausgewählte …», beide Listen leer | leeren | nichts wird geprüft — der Verbindungstest meldet es rot |
| Unterkategorie | Ware nur in «Spirituosen › Gin» führen, «Spirituosen» wählen | prüfpflichtig ab 18 |
| Grenze am Artikel | Artikel ohne Kategorie auf «immer ab 18» stellen | prüfpflichtig ab 18, Spalte sagt «am Artikel» |
| Artikel milder als Kategorie | Artikel in «Spirituosen», am Artikel «immer ab 16» | bleibt 18 — der Artikel kann nicht unterbieten |
| Unbekannte Grenze | bier:17 eintragen | gilt als 18, Zeile im WooCommerce-Log |
| Gelöschte Kategorie | eine ausgewählte Kategorie löschen | ganzer Warenkorb prüfpflichtig, gegen 18, Eintrag im WooCommerce-Log |
| Grenze zu schwach | mit 16er-Nachweis Gin bestellen | Kasse zu, auch innerhalb der drei Minuten |
| Plugin aus | deaktivieren | Bestellung geht durch, kein Netzaufruf |
Die vorletzte Zeile ist kein Fehler, sondern eine Entscheidung: Ein leeres Umfang «Ganzer Shop» heisst «alles prüfen», nicht «nichts prüfen». Für einen Laden, der auch Zubehör ohne Altersgrenze führt, ist das zu weit — deshalb steht es hier, damit es beim Ausprobieren nicht überrascht.
Die Zeile «Schlüssel gewechselt» prüft etwas Feineres: Das Plugin merkt sich das Ergebnis kurz zwischen (edelverify_ok_…, drei Minuten). Wird der Riegel erst nach Ablauf dieser Zeit dicht, gilt der Zwischenspeicher für den falschen Schlüssel — dann muss der Cache-Schlüssel den geheimen Schlüssel einbeziehen. Für die Altersgrenze gilt dasselbe, und die Zeile «Grenze zu schwach» misst es: Der Zwischenspeicher unterscheidet nach verlangter Grenze, sonst öffnete ein «ja» für Bier drei Minuten lang auch den Gin.
7b. Der Nachweis am Kundenkonto
Nur sinnvoll mit eingeschaltetem Schalter Nachweis am Kundenkonto (WooCommerce → Einstellungen → EdelVerify, ab Werk an) und mit einem Testschlüssel.
| Fall | Wie herbeiführen | Erwartet |
|---|---|---|
| Angemeldet geprüft | anmelden, prüfen, abmelden, wieder anmelden | Kasse offen, kein Prüffenster |
| Zweites Gerät | in Browser A prüfen, in Browser B als dieselbe Person anmelden | Kasse offen, kein Prüffenster |
| Gast prüft, meldet sich an | als Gast prüfen, dann anmelden, Seite neu laden | Nachweis liegt am Konto: wp user meta get <id> edelverify_konto_nachweis |
| Zwei Konten, ein Gerät | mit A prüfen, abmelden, als B anmelden | B sieht das Prüffenster — A's Nachweis wandert nicht mit |
| Abmelden | nach bestandener Prüfung abmelden | Sitzung leer, Konto behält den Eintrag |
| Gast nach Abmelden | nach dem Abmelden als Gast weiterklicken | Prüffenster erscheint wieder |
| Gültigkeit gesenkt | im EdelVerify-Admin von 30 auf 0 Tage stellen, neu prüfen | Kasse zu — der Eintrag am Konto verschwindet |
| Mindeststufe verschärft | nach einer Zeilen-Prüfung im Admin «nur Chip» einstellen | Kasse zu, Eintrag am Konto verschwindet |
| Schlüssel gewechselt | sk_ austauschen | Eintrag am Konto gilt nicht mehr (Abdruck passt nicht), Prüffenster erscheint |
| Konto gelöscht | Benutzer in WordPress löschen | wp user meta get findet nichts mehr |
| Datenauskunft | Werkzeuge → Persönliche Daten exportieren | Grenze, Gültigkeit, Betriebsart, Kennung — kein Nachweis (av_…) |
| Datenlöschung | Werkzeuge → Persönliche Daten löschen | Eintrag weg, Prüffenster erscheint wieder |
| Schalter aus | Kontobindung abschalten | verhält sich wie vor der Umstellung: alles hängt an der Sitzung |
Zwei Zeilen sind die wichtigen. «Zwei Konten, ein Gerät» ist der Fall, in dem ein falsch gebautes Plugin eine Altersbestätigung weitergibt, ohne dass es jemand merkt — das ist am Familienrechner nicht die Ausnahme, sondern der Regelfall. Und «Gültigkeit gesenkt» misst, ob der Shop gegen die heutige Einstellung rechnet oder gegen die von damals: Wer sich die Frist beim Abholen notiert und danach nur noch sich selbst liest, lässt einen alten Nachweis dreissig Tage weiterlaufen, obwohl der Händler ihn längst auf fünf gesetzt hat.
Nachsehen lässt sich der Eintrag mit der WP-CLI:
wp user meta get <benutzer-id> edelverify_konto_nachweisDarin stehen dürfen: proof, grenze, gilt_bis, mode, ref, abdruck. Was dort nicht stehen darf und auch nicht entstehen kann: Geburtsdatum, Name, Ausweisnummer.
7c. Die Frist, die Stufe und der nicht geladene Warenkorb
Drei Handgriffe, die von Hand gemacht werden müssen: Auf diesem Rechner ist kein PHP installiert, das Plugin ist also nicht ausgeführt worden. Belegt ist nur die Seite des Dienstes (bun test, siehe src/lib/shop/fristen.test.ts und src/lib/shop/stufe.test.ts).
Eine gesenkte Gültigkeitsdauer wirkt sofort
Der Fall, der bis zu dieser Fassung nicht funktionierte: Ein Nachweis, der unter dreissig Tagen ausgestellt wurde, lief weiter dreissig Tage, auch wenn der Händler den Regler danach auf fünf zog.
| Schritt | Erwartet |
|---|---|
| 1. Im EdelVerify-Konto Nachweis gilt (Tage) auf 30 stellen, prüfen, Kasse offen | Kasse offen |
| 2. Regler auf 1 stellen, in der Kasse neu laden | noch offen (der Nachweis ist keinen Tag alt) |
3. Regler auf 30 zurück, dann direkt in der Datenbank completedAt der Prüfung zehn Tage zurückdatieren | Kasse offen (10 < 30) |
| 4. Regler auf 5 stellen, in der Kasse neu laden | Kasse zu, Prüffenster erscheint, Eintrag am Konto verschwindet |
| 5. Regler wieder auf 30 stellen, neu laden | Kasse bleibt zu — eine erhöhte Frist belebt nichts wieder |
Schritt 5 ist der wichtigere der beiden. Eine Frist, die sich durch einen Handgriff im Portal rückwirkend verlängern liesse, wäre keine.
Gegenprobe ohne Shop, direkt am Dienst — expires_at muss die kürzere der beiden Fristen tragen:
curl -s https://verify.edelbyte.ch/api/v1/proofs/verify \
-H 'content-type: application/json' -H 'x-api-key: sk_…' \
-d '{"proof":"av_…","min_age":18}' | grep expires_atEin Nachweis auf zu schwacher Stufe wird weggeräumt
| Schritt | Erwartet |
|---|---|
| 1. Im EdelVerify-Konto die Ausweiszeilen freischalten, über die Zeilen prüfen | Kasse offen |
| 2. Mindeststufe zurück auf nur Chip stellen | Kasse zu |
3. wp user meta get <id> edelverify_konto_nachweis | leer — der Nachweis ist weg und nicht liegen geblieben |
4. wp-content/uploads/wc-logs/edelverify-*.log ansehen | Zeile «Nachweis auf einer Stufe, die dieser Shop nicht gelten lässt — entstanden über ausweis_mrz, verlangt wird mindestens ausweis_nfc» |
| 5. Dasselbe mit einer Flasche Gin im Korb (18) und einem 16er-Nachweis auf Zeilen-Stufe | ebenfalls weg — nicht «zu jung, liegen lassen» |
Schritt 5 ist der eigentliche Gegenstand. Vorher meldete der Dienst hier «zu jung», das Plugin liess den Nachweis liegen, und er wurde bis zum Verfall wieder und wieder vorgelegt, obwohl er an dieser Kasse nie etwas eingelöst hätte. Die Schranke blieb dabei zu — aufgeräumt wurde nur nie.
Zum Vergleich der Fall, der weiterhin liegen bleiben muss: ein 16er-Nachweis auf zulässiger Stufe, Gin im Korb. Fliegt die Flasche hinaus, muss die Kasse ohne neue Prüfung aufgehen.
«Wir konnten nicht nachsehen» ist keine Freigabe
cart_min_age() gab bis hierher null — «keine Prüfung nötig» — sowohl beim leeren Warenkorb als auch dann, wenn WC()->cart gar nicht geladen war. Auf den Wegen, die zählen, war das nicht erreichbar; die Form gehört trotzdem zu.
| Schritt | Erwartet |
|---|---|
| 1. Eine Bestellung von Hand im Backend anlegen (WooCommerce → Bestellungen → Neu) | Bestellung entsteht wie bisher |
| 2. Spalte EdelVerify in der Bestellliste ansehen | leer — und ausdrücklich nicht mehr «nicht nötig» |
| 3. Eine gewöhnliche Bestellung über die Kasse | unverändert «ja» mit Grenze, Zeit, Betriebsart |
Schritt 2 ist die sichtbare Folge: Wo niemand nachgesehen hat, wird auch nichts behauptet. Ein Beleg «Prüfung nicht nötig» an einer Bestellung, deren Ware das Plugin nie zu Gesicht bekommen hat, wäre im Streitfall wertlos — schlimmer noch, er sähe aus wie eine Feststellung.
8. Was ohne diesen Plan bereits belegt ist
Damit Sie wissen, wo Sie ansetzen und wo nicht:
| Behauptung | Womit belegt |
|---|---|
| Jeder angemeldete Haken hat eine Methode | python3 scripts/pakete-pruefen.py woocommerce |
| Kein Fehlerweg endet in einer Freigabe | python3 scripts/pakete-pruefen.py, Abschnitt E |
over_18 genügt nirgends allein als Freigabe | dieselbe Prüfung, Abschnitt J |
| Die Grenze reist mit — Einlösen, Zwischenspeicher, Vorgabe 18 | dieselbe Prüfung, Abschnitt K |
| Die Prüfungen J, K und E schlagen überhaupt noch an | dieselbe Prüfung, Abschnitt «Selbstprüfung» |
| Kein geheimer Schlüssel gelangt in den Browser | dieselbe Prüfung, Abschnitt F |
| Alle drei aufgerufenen API-Pfade gibt es wirklich | dieselbe Prüfung, Abschnitt G |
| Die Schnittstelle verhält sich wie beschrieben | python3 scripts/api-vertragstest.py (läuft gegen verify.edelbyte.ch) |
| 16 und 18 verhalten sich wie oben beschrieben | dieselbe Prüfung, Abschnitt 10 |
| Der Riegel hält im Demo-Shop | ./scripts/pruefe-shop.sh gegen woocommerce.edelbyte.ch |
Was nicht belegt ist und nur dieser Plan klärt: dass es in Ihrem Shop hält — mit Ihrem Theme, Ihren Kategorien, Ihren Zahlungsarten und Ihrem Kassenweg.
9. Was heute noch nicht geht
Damit Sie es hier erfahren und nicht nach der Installation:
- Zwei Schwellen, nicht mehr. 16 und 18 — geprüft wird gegen eine Schwelle, nicht auf ein Geburtsdatum. Eine 21 gibt es nicht, und ein Feld, in das man sie eintragen könnte, ohne dass sie wirkt, wäre schlimmer als keines.
- Keine Webhooks. Der Stand wird abgefragt, nicht zugestellt. Prüft die Kundschaft am Handy, während der Rechner-Tab geschlossen ist, erfährt der Shop davon nichts.
- Ein Nachweis gilt bei einem Shop. Wer mehrere Shops betreibt, braucht je Shop ein eigenes Schlüsselpaar.
- Der E-ID-Weg ist abgeschaltet. Der Bund hat die Einführung am
- Juni 2026 verschoben und nennt kein neues Datum; einen Wahlschirm gibt es deshalb nicht, die Ausweisprüfung startet sofort. Was Sie prüfen, ist der Ausweis-Weg — und der läuft. Bauen und prüfen Sie trotzdem zuerst mit Testschlüsseln; am Tag der Umstellung tauschen Sie zwei Zeichenfolgen aus, sonst nichts.