Bitte beachte, dass sich diese Dokumentation auf die neuste Version dieser Erweiterung bezieht. Wenn eine ältere Version eingesetzt wird, kann diese abweichen. Die jeweils passende Dokumentation befindet sich im Dokumentation-Verzeichnis der Erweiterung.
Feld Definitionen
Felder für den Checkout können wie auf dieser Seite beschrieben definiert werden. Grundsätzlich definieren Sie eine Reihe von Feldern und weisen diese anschließend Ihren verschiedenen Checkouts zu. Auf diese Weise können Sie für jeden Checkout-Typ unterschiedliche Felder haben.
Alle Felddefinitionen müssen in plugin.tx_shop.settings.basketOrder.fieldDefinition
eingefügt werden, wobei der Schlüssel als interner Feldname fungiert.
Attribut | Bweschreibung |
---|---|
label | Label für das Feld. Es unterstützt a und span HTML-Tags zur Stilmanipulation und Checkbox-Links. |
placeholder | Platzhaltertext für Eingabefelder. |
type | Mögliche Typen: input als einfache Texteingabe, country als Länderauswahlfeld, textarea als mehrzeiliges Textfeld, checkbox als ein einfaches checkbox, select als Auswahlfeld. |
eval | Zum Beispiel trim bei type=input entfernt Leerzeichen davor/danach, email bei type=input validiert die eingegebene email, phone bei type=input validiert die Teleonnummer. |
default | Definiert einen Standardwert, der beim ersten Laden des Formulars eingefügt wird. Dies ist beispielsweise sinnvoll, um in der Länderauswahl standardmäßig das Land DE auszuwählen. |
options | Definiert die Optionen für das Auswahlfeld, wie : options.0.value = male für den Optionswert des Auswahlfelds des ersten Elements und options.0.label = Male für das Label - siehe Beispiel unten. |
linkPid | Nur für checkbox. Kann eine Seiten-UID zum Einfügen eines Links enthalten, beispielsweise zu Bedingungen oder zum Datenschutz. Dazu muss das Label ein %s enthalten - zum Beispiel Ich habe die <a href="%s" target="_blank">Datenschutzbestimmungen gelesen und akzeptiere diese</a> . Ein Wert kann auch eine TypoScript-Konstante sein {$themes.configuration.pages.terms} |
errors | Enthält eine oder mehrere Validierungen inkl. Fehlermeldungen. |
errors.isEmpty | Validator, der Text in einer Eingabe erfordert. Der Wert muss die Fehlermeldung enthalten. |
errors.isInvalidEmail | Validator, der eine gültige E-Mailadresse in einer Eingabe erfordert. Der Wert muss die Fehlermeldung enthalten. |
errors.userWithEmailAlreadyExists | Validator, der prüft ob eine E-Mailadresse bereits als Account in der Benutzer-Datenbank vorhanden ist. Der Wert muss die Fehlermeldung enthalten. |
deliveryAddressToggle | Dieses Attribut definiert das Checkbox abweichende Lieferadresse. Es muss einfach auf deliveryAddressToggle = 1 gesetzt werden. |
deliveryAddress | Dieses Attribut definiert, dass ein Feld zur abweichenden Lieferadresse gehört. Alle Felder mit deliveryAddress = 1 werden durch das Checkbox deliveryAddressToggle umgeschaltet. |
fetchFrom | Dieses Attribut definiert, dass dieses Feld automatisch befüllt werden muss. Der Wert delivery_address.company bewirkt, dass aus der angegebenen delivery_address , die eine tx_modules_domain_model_address ist, das Feld company in dieses Checkout-Feld geschrieben wird. |
Vordefinierte Felder können wir folgt zu den unterschiedlichen Checkouts hinzugefügt werden:
plugin.tx_shop.settings.basketOrder {
orderOptions {
onInvoice {
fields {
available = firstname, lastname, street, houseNumber, postalCode, city, country, phone, email, termsConfirmed
required = firstname, lastname, country, phone, email, termsConfirmed
}
}
}
}
avaiable
definiert sichtbare Felder und required
die Pflichtfelder.
Achtung:
Abhängig von der Bezahlart sind verschiedene Felder erforderlich - bspw. die Landes-Auswahl.
Achtung:
Wenn während der Entwicklung die Felder verändert werden, kann es sein das diese zwischen zeitlich in der Session gemerkt werden. Es macht also Sinn das Frontend Session-Cookie zu löschen, wenn Felder oder Konfiguration für den Checkout angepasst wurden!
Bereits vordefinierte Felder
plugin.tx_shop.settings.basketOrder {
fieldDefinition {
company {
label = Company
placeholder = Your company
type = input
eval = trim
errors {
isEmpty = Please enter your company name
}
}
vatId {
label = VAT-ID
placeholder = Your VAT-ID
type = input
eval = trim
errors {
isEmpty = Please enter your VAT-ID
}
}
gender {
label = Gender
type = select
eval = trim
options {
0 {
value = male
label = Male
}
1 {
value = female
label = Female
}
2 {
value = other
label = Other
}
}
}
firstname {
label = Firstname
placeholder = Your firstname
type = input
eval = trim
errors {
isEmpty = Please enter your firstname
}
}
lastname {
label = Lastname
placeholder = Your lastname
type = input
eval = trim
errors {
isEmpty = Please enter your lastname
}
}
address {
label = Address
placeholder = Your Address
type = input
eval = trim
errors {
isEmpty = Please enter your address
}
}
street {
label = Street
placeholder = Your street
type = input
eval = trim
errors {
isEmpty = Please enter your street
}
}
houseNumber {
label = Housenumber
type = input
eval = trim
placeholder = Your housenumber
errors {
isEmpty = Please enter your housenumber
}
}
postalCode {
label = Postal code
placeholder = Your postal code
type = input
eval = trim
errors {
isEmpty = Please enter your postal code
}
}
city {
label = City
placeholder = Your city
type = input
eval = trim
errors {
isEmpty = Please enter your city
}
}
country {
label = Land
type = country
eval = trim
default = DE
errors {
isEmpty = Please choose your country
}
}
phone {
label = Phone
placeholder = Your phone number
type = input
eval = trim,phone
errors {
isEmpty = Please enter your phone number
isInvalidPhone = Please enter a valid phone number
}
}
password {
label = Password
placeholder = Your password
type = password
eval = trim,password
passwordCompare {
label = Repeat password
placeholder = Repeat your password
}
errors {
isEmpty = Please enter your password
isInvalidPassword = Please enter a valid password with at least 10 characters, one upper and lower case character, one number and a special character.
unequalPasswords = Given passwords aren't equal
}
}
email {
label = Email
placeholder = Your email
type = input
eval = trim,email
emailCompare {
active = {$themes.configuration.extension.shop.checkout.emailCompare}
label = Repeat email
placeholder = Repeat your email
}
errors {
isEmpty = Please enter your email address
isInvalidEmail = Please enter a valid mail address
unequalMails = Given mail addresses aren't equal
userWithEmailAlreadyExists = There's already a user with this email address available. Please login or use another email address.
}
}
message {
label = Message
placeholder = Your message
type = textarea
eval = trim
errors {
isEmpty = Please enter a message
}
}
privacyProtectionConfirmed {
label = I've read the <a href="%s" target="_blank">privacy protection and accept them</a>
type = checkbox
eval = trim
linkPid = {$themes.configuration.pages.privacy}
errors {
isEmpty = Please accept our privacy protection
}
}
termsConfirmed {
label = I've read the <a href="%s" target="_blank">terms</a> and accept them
type = checkbox
eval = trim
linkPid = {$themes.configuration.pages.terms}
errors {
isEmpty = Please accept our terms
}
}
disclaimerConfirmed {
label = I've read the <a href="%s" target="_blank">disclaimer</a> and accept them
type = checkbox
eval = trim
linkPid = {$themes.configuration.pages.disclaimer}
errors {
isEmpty = Please accept the disclaimer
}
}
createFrontendUser {
label = Please create me a user account
type = checkbox
eval = trim
errors {
isEmpty = Please confirm that we create you an user account or loggin with your existing account
}
}
deliveryAddressEnabled {
type = checkbox
deliveryAddressToggle = 1
label = Deviating delivery address
}
deliveryAddresses {
label = Address
type = address
eval = trim
deliveryAddress = 1
errors {
isEmpty = Please choose your delivery address
}
}
deliveryAddressCompany {
label = Company
type = input
eval = trim
deliveryAddress = 1
placeholder = Your company
errors {
isEmpty = Please enter your company name
}
fetchFrom = delivery_address.company
}
deliveryAddressFirstname {
label = Firstname
type = input
eval = trim
deliveryAddress = 1
placeholder = Your firstname
errors {
isEmpty = Please enter your firstname
}
fetchFrom = delivery_address.first_name
}
deliveryAddressLastname {
label = Lastname
placeholder = Your lastname
type = input
eval = trim
deliveryAddress = 1
errors {
isEmpty = Please enter your lastname
}
fetchFrom = delivery_address.last_name
}
deliveryAddressStreet {
label = Street
placeholder = Your street
type = input
eval = trim
deliveryAddress = 1
errors {
isEmpty = Please enter your street
}
fetchFrom = delivery_address.street
}
deliveryAddressHouseNumber {
label = Housenumber
type = input
eval = trim
deliveryAddress = 1
placeholder = Your housenumber
errors {
isEmpty = Please enter your housenumber
}
fetchFrom = delivery_address.house_number
}
deliveryAddressPostalCode {
label = Postal code
placeholder = Your postal code
type = input
eval = trim
deliveryAddress = 1
errors {
isEmpty = Please enter your postal code
}
fetchFrom = delivery_address.postal_code
}
deliveryAddressCity {
label = City
placeholder = Your city
type = input
eval = trim
deliveryAddress = 1
errors {
isEmpty = Please enter your city
}
fetchFrom = delivery_address.city
}
deliveryAddressCountry {
label = Country
type = country
eval = trim
default = DE
deliveryAddress = 1
errors {
isEmpty = Please choose your country
}
fetchFrom = delivery_address.country
}
deliveryAddressPhone {
label = Phone
placeholder = Your phone number
type = input
eval = trim,phone
deliveryAddress = 1
errors {
isEmpty = Please enter your phone number
isInvalidPhone = Please enter a valid phone number
}
}
}
}
Übersetzungen von Feld Definitionen
Übersetzungen für Feld Definitionen können wie folgt bereitgestellt werden:
[siteLanguage("locale") == "de_DE.UTF-8" || siteLanguage("locale") == "de-DE" || siteLanguage("typo3Language") == "de"]
plugin.tx_shop.settings.basketOrder.fieldDefinition {
company {
label = Firma
placeholder = Ihre Firma
errors {
isEmpty = Bitte geben Sie Ihre Firma ein
}
}
}
[END]