Zum Hauptinhalt springen
Ist ein Produkt nicht lieferbar, kann sich der Käufer benachrichtigen lassen, sobald es wieder da ist. Die Abfrage seiner E-Mail-Adresse liegt normalerweise auf einer eigenen Seite. Der Käufer verlässt dafür die Produktdetailansicht und muss danach zurückfinden. In einem überlagernden Fenster bleibt er, wo er ist. 20180427 Backinstockemailmodal Die Funktion selbst, also die Benachrichtigung bei Wiederverfügbarkeit, wird hier nicht beschrieben. Sie muss eingerichtet sein. Diese Seite zeigt nur, wie Sie die Abfrage statt auf einer eigenen Seite in einem Fenster unterbringen. Wegweiser: BackInStockMail (OrderNow-Service) · Formulare per AJAX nachladen und absenden

Wie es zusammenspielt

Das Formular steht also weiterhin auf seiner eigenen Seite. Es wird nur per AJAX in das Fenster geholt, statt die Seite zu wechseln.
Für das Fenster brauchen Sie ein Oberflächen-Framework, im Beispiel unten Bootstrap. Die gezeigten Klassen- und Attributnamen stammen aus Bootstrap 3.Ab Bootstrap 5 heißen die Attribute data-bs-toggle und data-bs-dismiss, und die Symbolschrift glyphicon gibt es nicht mehr. Prüfen Sie, welche Fassung Ihr Shop verwendet, bevor Sie das Beispiel übernehmen.

Schritt 1: Die Schaltfläche auf der Produktdetailansicht

Die Klammerung {PR-InventoryState(red,red-soft,red-hard)} begrenzt die Schaltfläche auf die drei Lagerzustände, in denen das Produkt nicht lieferbar ist. Bei verfügbarer Ware erscheint sie nicht. Im Original steht hier ein a-Element. Für eine Schaltfläche, die kein Ziel hat, sondern eine Aktion auslöst, ist button das richtige Element. Es ist ohne Zutun mit der Tastatur erreichbar und wird von Hilfsmitteln als Schaltfläche angesagt. Referenz: PR-Inventory · PR-InventoryState() · PR-InventoryRegisterLink · WS-Charset

Schritt 2: Der Fensterrahmen

Ans Ende des body der ws_product.htm:
Der innere Container ws_backinstock_content ist zunächst leer. Sein Name entspricht dem Namen des AJAX-Bereichs aus Schritt 3, denn darüber findet die Bibliothek das Ziel.
Ein Fenster ohne role, ohne aria-labelledby und mit einer Schließen-Schaltfläche ohne Namen ist für Hilfsmittel nicht bedienbar. Das Zeichen × wird als “mal” vorgelesen. Die vier Angaben im Beispiel oben kosten nichts und beheben das.

Schritt 3: Das Formular im AJAX-Bereich

Auf ws_inventory_register.htm:
Die Klammerung {ST-Ajax} um die beiden Bereichsmarken sorgt dafür, dass diese nur beim AJAX-Aufruf ausgegeben werden. Ruft jemand ws_inventory_register.htm unmittelbar auf, bekommt er die gewohnte Seite ohne die Marken.
Nur das Feld für die E-Mail-Adresse darf ein Pflichtfeld sein. Macht man weitere Felder zur Pflicht, bricht der Vorgang ab, weil der Dienst sie nicht erwartet.
Referenz: ST-Ajax · FORM-InventoryRegister · Materialien: WEBSALE JavaScript-Bibliothek

Verwandte Themen