Zum Hauptinhalt springen
Der Käufer soll seine Bestellung in einer Filiale abholen und dort bezahlen. Auf der Zahlungs- und Versandartenseite ws_pay_deliv.htm wählt er dazu “Click and Collect” und anschließend seinen Abholpunkt aus einer Liste. Technisch ist das kein eigenes Modul, sondern die Kombination zweier Dinge, die WEBSALE V8s ohnehin kennt: Zusammengehalten wird das über DelivererID-List: Die Zahlungsart lässt nur diese eine Versandart zu, und umgekehrt. Das Beispiel richtet Click and Collect für Filialen in Deutschland und Österreich ein. Clickandcollect

Schritt 1: Die Zahlungsart anlegen

In der Shopkonfiguration shop.config kommt ein neuer Abschnitt <PaymentUserDef1-Txt> dazu. Verwenden Sie einen der fünf freien Abschnitte, der noch nicht belegt ist.
Referenz: Abschnitt PaymentUserDef1…5-Txt

Schritt 2: Die Versandart anlegen

Dazu ein neuer Abschnitt <+Deliverer>. Die ID ist der Wert, auf den sich die DelivererID-List der Zahlungsart bezieht.
+UseAdditionalInput-ID steht hier zweimal. Jede Zusatzeingabe, die zu dieser Versandart gehören soll, bekommt eine eigene Zeile. Welche davon der Käufer tatsächlich zu sehen bekommt, entscheidet erst Schritt 3.
NoCost-Txt ist nur der Text, der anstelle eines Betrags erscheint. Er macht die Versandart nicht kostenlos. Wenn für diese Versandart Kosten hinterlegt sind, werden sie berechnet und der Käufer sieht trotzdem “versandkostenfrei”. Lassen Sie die Kosten für clickandcollect deshalb bei null.
Referenz: Abschnitt +Deliverer

Schritt 3: Die Filialauswahl anlegen

Die Auswahlliste der Filialen ist eine Zusatzeingabe zur Versandart. Sie steht im Abschnitt <DelivererAdditionalInput-Definitions>, den es in der shop.config nur einmal geben darf. Gibt es Filialen in mehreren Ländern, braucht jedes Land einen eigenen <+AdditionalInput>-Abschnitt. Der Unterabschnitt <+VisibilityDependency> sorgt dafür, dass der Käufer nur die Liste des Landes sieht, in das geliefert wird.
Required = yes und <+VisibilityDependency> schließen einander aus.Die Prüfung, ob eine Zusatzeingabe ein Pflichtfeld ist, beginnt mit Required. Steht dort yes, liefert sie sofort “Pflichtfeld” zurück und sieht sich <+RequiredDependency> gar nicht erst an. Die Sichtbarkeit wird dabei nicht berücksichtigt.Mit Required = yes in beiden Abschnitten wäre für einen österreichischen Käufer die ausgeblendete deutsche Filialliste ein leeres Pflichtfeld. Er könnte die Bestellung nicht abschließen und bekäme eine Fehlermeldung zu einem Feld, das er nicht sieht.Deshalb steht oben Required = no, und die Pflicht wird über <+RequiredDependency> an dieselbe Bedingung gehängt wie die Sichtbarkeit.Die Bedingung prüft das Lieferland, nicht das Rechnungsland. Zahlungsart und Versandart filtern über DeliveryCountry-List ebenfalls nach dem Lieferland. Mit Input = billaddress würden Filter und Sichtbarkeit auseinanderlaufen, sobald Rechnungs- und Lieferadresse verschiedene Länder haben.Input = delivaddress ist auch dann der sichere Weg, wenn Ihr Shop gar keine abweichende Lieferadresse anbietet: Wird keine Lieferadresse verwendet, prüft WEBSALE V8s in diesem Fall die Rechnungsadresse. onlydelivaddress tut das nicht und würde ohne Lieferadresse nie zutreffen.
Mehrere <+VisibilityDependency>-Abschnitte sind untereinander oder-verknüpft, die <+Dependency>-Abschnitte innerhalb eines Abschnitts und-verknüpft. Für <+RequiredDependency> gilt dasselbe. So fassen Sie beispielsweise Deutschland und Österreich in einer Liste zusammen, indem Sie zwei <+VisibilityDependency>-Abschnitte anlegen.
Eine Auswahlliste fasst höchstens 100 <+listentry>-Einträge. Bei einem größeren Filialnetz reicht ein <+AdditionalInput> je Land nicht aus. Teilen Sie die Filialen dann nach einem weiteren Merkmal auf, beispielsweise nach Postleitzahlenbereich oder Bundesland, und steuern Sie die Sichtbarkeit über eine entsprechende Bedingung.
MaxLength braucht eine Auswahlliste nicht. Der Parameter wirkt nur bei Type = input. Werte über dem internen Maximum werden ohnehin stillschweigend darauf zurückgesetzt. Referenz: Abschnitt DelivererAdditionalInput-Definitions

Schritt 4: Die Auswahl im Template ausgeben

Mit den drei Schritten oben ist die Konfiguration vollständig, der Käufer sieht die Filialauswahl aber noch nicht. Die Zusatzeingaben werden nicht von selbst gerendert, sondern vom Template ausgegeben. Zuständig ist die Schleife DELIV-Data_AdditionalInput auf der Zahlungs- und Versandartenseite. Wenn Ihr Template aus einem aktuellen Materialien-Paket stammt, ist diese Schleife bereits enthalten und Sie müssen nichts weiter tun. Andernfalls ergänzen Sie sie. Referenz: DELIV- (Versandarten), Zusatzeingaben zur Versandart
Eine Auswahlliste ohne leeren ersten Eintrag ist nie leer. Der Browser wählt den ersten Eintrag vor, das Pflichtfeld gilt damit als ausgefüllt, und wer die Liste nie angefasst hat, bestellt zur erstgenannten Filiale.Setzen Sie im Template deshalb eine leere Option vor die Schleife:
Erst dadurch wird aus AdditionalInfoText die sichtbare Aufforderung “Filiale auswählen”, und erst dadurch greift RequiredErrorMessage-Txt.

Was der Käufer am Ende durchläuft

Verwandte Themen