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

TypoScript configuration order SEPA (direct debit)

stateDiagram-v2

    %% Frontend
    [*] --> prepared : Customer in cart / checkout

    prepared --> ordered : Checkout completed\nConfirmation email\nInvoice number

    %% Backend – manual steps
    ordered --> paid : Payment recorded manually
    ordered --> shipped : Shipment processed manually
    ordered --> canceled_unpaid : No payment\nCancellation

    %% Order intentionally flexible
    paid --> shipped : Shipment after payment
    shipped --> paid : Payment after shipment

    %% Finalization
    paid --> processed : Finalized without shipment\n(e.g. digital)
    shipped --> processed : Finalized after shipment
    canceled_unpaid --> processed : Cancellation completed

    %% Conditions
    note right of processed
    Conditions for "processed":
    - paid_date MUST be set
    - shipped_date MUST be set
    if shipment has taken place
    end note
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}
            }
            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}
                }
            }
        }
    }
}
Shopping basket 0 Products

The Demo is build with*

EXT:bootstrap_package for site-package aka theme build on Bootsrap 5.

EXT:modules for user plugins like user-profile, registration, user-addresses, and more.

EXT:shop for the whole shop functionality.

EXT:questions for the FAQ page and FAQs attached in the product detail views.

EXT:glossaries for the glossaries and definitions.

EXT:fluid_fpdf for generating invoices, delivery-notes, product-sheets and more.

EXT:parsedown_extra for rendering the extension documentations from markdown to HTML.

* There are only build-in settings made using site-settings & TypoScript – no templates or other files were changed or overridden!