Skip to main navigation Skip to main content Skip to page footer

Warenkorb Bestellung mit SEPA (Lastschrift)

Bei der Zahlart SEPA-Lastschrift wird die Bestellung nach Abschluss des Checkouts als verbindlich angelegt (inkl. Bestell- und Rechnungsnummer). Die weiteren Schritte erfolgen anschließend im Backend manuell: Zahlungseingänge werden nach erfolgtem Einzug verbucht, der Versand wird bei physischer Ware manuell gesetzt, und bei ausbleibender Zahlung kann die Bestellung storniert werden. Da Zahlung und Versand je nach Prozess auch zeitlich versetzt stattfinden können, ist die Reihenfolge bewusst flexibel; abgeschlossen wird der Vorgang erst, wenn die Zahlung erfasst ist und – falls zutreffend – der Versand erfolgt ist.

stateDiagram-v2

    %% Frontend
    [*] --> prepared : Kunde im Warenkorb / Checkout

    prepared --> ordered : Checkout abgeschlossen\nBestätigungsmail\nRechnungsnummer

    %% Backend – manuelle Schritte
    ordered --> paid : Zahlung manuell verbucht
    ordered --> shipped : Versand manuell durchgeführt
    ordered --> canceled_unpaid : Keine Zahlung\nStorno

    %% Reihenfolge bewusst flexibel
    paid --> shipped : Versand nach Zahlung
    shipped --> paid : Zahlung nach Versand

    %% Abschluss
    paid --> processed : Abschluss ohne Versand\n(z. B. digital)
    shipped --> processed : Abschluss nach Versand
    canceled_unpaid --> processed : Storno abgeschlossen

    %% Conditions
    note right of processed
      Conditions für "processed":
      - paid_date MUSS gesetzt sein
      - shipped_date MUSS gesetzt sein,
        falls Versand erfolgt ist
    end note

Weitere Aktionen:

  • Retoure: Möglich sobald die Ware versandt wurde – d. h. im Zustand shipped oder processed.
  • Löechen: Das Löschen einer Bestellung ist nur im Status prepared möglich.

TypoScript Konfiguration

plugin.tx_shop.settings.basketOrder {
    orderOptions {
        sepa {
            active = {$themes.configuration.extension.shop.checkout.sepa.active}
            attachProductFilesToAdminEmail = {$themes.configuration.extension.shop.checkout.sepa.attachProductFilesToAdminEmail}
            attachProductFilesToCustomerEmail = {$themes.configuration.extension.shop.checkout.sepa.attachProductFilesToCustomerEmail}
            attachInvoiceToAdminEmail = {$themes.configuration.extension.shop.checkout.sepa.attachInvoiceToAdminEmail}
            attachSepaMandateToAdminEmail = {$themes.configuration.extension.shop.checkout.sepa.attachSepaMandateToAdminEmail}
            attachInvoiceToCustomerEmail = {$themes.configuration.extension.shop.checkout.sepa.attachInvoiceToCustomerEmail}
            attachSepaMandateToCustomerEmail = {$themes.configuration.extension.shop.checkout.sepa.attachSepaMandateToCustomerEmail}
            attachDeliveryNoteToAdminEmail = {$themes.configuration.extension.shop.checkout.sepa.attachDeliveryNoteToAdminEmail}
            attachDeliveryNoteToCustomerEmail = {$themes.configuration.extension.shop.checkout.sepa.attachDeliveryNoteToCustomerEmail}
            attachOrderXmlToAdminEmail = {$themes.configuration.extension.shop.checkout.sepa.attachOrderXmlToAdminEmail}
            storeOrderXmlInFolder = {$themes.configuration.extension.shop.checkout.sepa.storeOrderXmlInFolder}
            storeOrderXmlInFolderName = {$themes.configuration.extension.shop.checkout.sepa.storeOrderXmlInFolderName}
            type = sepa
            minimumOrderValue = 0
            maximumOrderValue = 0
            checkoutPid = {$themes.configuration.pages.shop.checkout}
            successPid = {$themes.configuration.pages.shop.checkoutSuccess}
            errorPid = {$themes.configuration.pages.shop.checkoutError}
            service = CodingMs\Shop\Service\Checkout\SepaCheckoutService
            button {
                title = tx_shop_label.sepa_button_title
                label = tx_shop_label.sepa_button_label
                icon = fa fa-shopping-cart
            }
            fields {
                available = {$themes.configuration.extension.shop.checkout.sepa.fields.available}
                required = {$themes.configuration.extension.shop.checkout.sepa.fields.required}
            }
            status {
                prepared {
                    allowed {
                        ordered =
                    }
                }
                ordered {
                    allowed {
                        paid =
                        shipped =
                        canceled_unpaid =
                    }
                }
                shipped {
                    allowed {
                        paid {
                            # Zahlung nach Versand verbuchen
                            condition {
                                ordered_date = NotEmpty
                                paid_date = Empty
                            }
                        }
                        processed {
                            # Abschluss nur, wenn Zahlung erfolgt ist
                            condition {
                                paid_date = NotEmpty
                            }
                        }
                    }
                }
                paid {
                    # Zahlung wurde verbucht, Versand kann folgen
                    allowed {
                        shipped {
                            # Versand nach Zahlung
                            condition {
                                ordered_date = NotEmpty
                                shipped_date = Empty
                            }
                        }
                        processed {
                            # Abschluss ohne Versand (z. B. digitale Leistung)
                            # ODER nach Versand (shipped_date bereits gesetzt)
                            condition {
                                paid_date = NotEmpty
                            }
                        }
                    }
                }
                canceled_unpaid {
                    # Bestellung wird storniert, da keine Zahlung einging
                    allowed {
                        processed =
                    }
                }
                processed {
                    # End, but "allowed" must be defined!
                    allowed =
                }
            }
            email {
                customerConfirmation {
                    active = {$themes.configuration.extension.shop.checkout.sepa.email.customerConfirmation.active}
                    from {
                        name = {$themes.configuration.extension.shop.email.from.name}
                        email = {$themes.configuration.extension.shop.email.from.email}
                    }
                    to {
                        # Customer address data
                    }
                    cc {
                        name = {$themes.configuration.extension.shop.email.cc.name}
                        email = {$themes.configuration.extension.shop.email.cc.email}
                    }
                    subject = {$themes.configuration.extension.shop.email.templates.sepa.subjectCustomerConfirmation}
                }
                order {
                    active = {$themes.configuration.extension.shop.checkout.sepa.email.order.active}
                    from {
                        name = {$themes.configuration.extension.shop.email.from.name}
                        email = {$themes.configuration.extension.shop.email.from.email}
                    }
                    to {
                        name = {$themes.configuration.extension.shop.email.to.name}
                        email = {$themes.configuration.extension.shop.email.to.email}
                    }
                    cc {
                        name = {$themes.configuration.extension.shop.email.cc.name}
                        email = {$themes.configuration.extension.shop.email.cc.email}
                    }
                    subject = {$themes.configuration.extension.shop.email.templates.sepa.subjectOrder}
                }
            }
        }
    }
}
Dokumentation

TYPO3 Shop by coding.ms

Ein umfangreicher Shop für TYPO3 zur Realisierung von Webshops, Online-Shops oder Payment-Subscriptions, vergleichbar mit tt_products, Cart oder Aimeos. Enthalten sind PayPal, PayPal-Checkout, Klarna, Stripe, Bookmarks, UPS-API, Rechnungs­erstellung, Backend-Modul, Vergleichsfunktion, Staffelpreise sowie Produktvarianten, Filter, Steuer- und Versandlogik für den praktischen Einsatz.

Menü
Warenkorb 0 Produkte

Dieses Demo wurde gebaut mit*

EXT:bootstrap_package für das Site-Package aka Theme basierend auf Bootstrap 5.

EXT:modules für Benutzer-Plugins wie Benutzerprofile, Registrierung, Benutzeradressen und mehr.

EXT:shop für die gesamte Shop-Funktionalität.

EXT:questions für die FAQ-Seite und die in den Produktdetailseiten verlinkten FAQs.

EXT:glossaries für die Glossare und Definitionen.

EXT:fluid_fpdf zur Erstellung von Rechnungen, Lieferscheinen, Produktblättern und mehr.

EXT:parsedown_extra zum Rendern der Erweiterungsdokumentation von Markdown in HTML.

* Es wurden ausschließlich integrierte Einstellungen mit site-settings & TypoScript vorgenommen – keine Templates oder andere Dateien wurden geändert oder überschrieben!