Loading...
Navigation überspringen
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 spanHTML-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, iban bei type=input validiert eine IBAN, bic bei type=input validiert eine BIC.
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.
prependHorizontalRule Fügt eine horizontale Linie vor diesem Feld ein (vor einer optionalen Überschrift). (erfordert Version >= 5.8 oder >= 4.9)
prependHeadline Fügt eine Überschrift vor diesem Feld ein. (erfordert Version >= 5.8 oder >= 4.9)
appendHorizontalRule Fügt eine horizontale Linie nach diesem Feld ein. (erfordert Version >= 5.8 oder >= 4.9)

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
            }
        }
        accountHolder {
            label = Account holder
            placeholder = Account holder name
            prependHorizontalRule = 1
            prependHeadline = Bank account
            type = input
            eval = trim
            errors {
                isEmpty = Please enter your phone number
            }
        }
        iban {
            label = IBAN
            placeholder = DE12 3456 7890 1234 5678 …
            type = input
            eval = trim,iban
            errors {
                isEmpty = Please enter the IBAN
                isInvalidIban = Please enter a valid IBAN
            }
        }
        bic {
            label = BIC
            placeholder = ABC12DE3…
            type = input
            eval = trim,bic
            errors {
                isEmpty = Please enter the BIC
                isInvalidBic = Please enter a valid BIC
            }
        }
        bankName {
            label = Bank name
            placeholder = Bank name
            type = input
            eval = trim
            errors {
                isEmpty = Please enter the bank name
            }
        }
        sepaConfirmedB2C {
            # %s => themes.configuration.extension.shop.checkout.merchantName
            label = I authorize <b>%s</b> to collect payments from my account by SEPA Direct Debit. I may request a refund within eight weeks from the debit date.
            type = checkbox
            appendHorizontalRule = 1
            eval = trim
            errors {
                isEmpty = Please accept the SEPA mandate
            }
        }
        sepaConfirmedB2B {
            # %s => themes.configuration.extension.shop.checkout.merchantName
            label = I authorize <b>%s</b> to collect payments from my account by SEPA Direct Debit.
            type = checkbox
            appendHorizontalRule = 1
            eval = trim
            errors {
                isEmpty = Please accept the SEPA mandate
            }
        }
    }
}

Ü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]

Kontaktanfrage

Du kannst uns jederzeit kontaktieren

Stop! Playing in the meantime?
Stop! Playing in the meantime?
Stop! Playing in the meantime?

Stop! Playing in the meantime?

Break the highscore

Press Start
Contact request
Screenreader label
Security question
BL7_________Z9W______
__T____I____2_E___XBK
UI2___G8Z___BNB______
Z______U____F_W___B1H
U8I_________XFD______