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

TypoScript configuration order onRequest

stateDiagram-v2
    [*] --> prepared : Customer builds cart\nand selects “Request”

    prepared --> requested : Request submitted\nconfirmation email optional

    requested --> answered : Admin answers request\n(offer / follow-up question)

    answered --> processed : Request completed

    %% Optional follow-up process (no status change!)
    note right of answered
      Optional feature that can be
      implemented on request:
      - Request can be converted into an order
        (order → prepared)
      - Optional: automatic transition
    end note
plugin.tx_shop.settings.basketOrder {
    orderOptions {
        request {
            active = {$themes.configuration.extension.shop.checkout.request.active}
            attachProductFilesToAdminEmail = {$themes.configuration.extension.shop.checkout.request.attachProductFilesToAdminEmail}
            attachProductFilesToCustomerEmail = {$themes.configuration.extension.shop.checkout.request.attachProductFilesToCustomerEmail}
            attachInvoiceToAdminEmail = {$themes.configuration.extension.shop.checkout.request.attachInvoiceToAdminEmail}
            attachInvoiceToCustomerEmail = {$themes.configuration.extension.shop.checkout.request.attachInvoiceToCustomerEmail}
            attachDeliveryNoteToAdminEmail = {$themes.configuration.extension.shop.checkout.request.attachDeliveryNoteToAdminEmail}
            attachDeliveryNoteToCustomerEmail = {$themes.configuration.extension.shop.checkout.request.attachDeliveryNoteToCustomerEmail}
            attachOrderXmlToAdminEmail = {$themes.configuration.extension.shop.checkout.request.attachOrderXmlToAdminEmail}
            storeOrderXmlInFolder = {$themes.configuration.extension.shop.checkout.request.storeOrderXmlInFolder}
            storeOrderXmlInFolderName = {$themes.configuration.extension.shop.checkout.request.storeOrderXmlInFolderName}
            type = request
            checkoutPid = {$themes.configuration.pages.shop.checkout}
            successPid = {$themes.configuration.pages.shop.checkoutSuccess}
            errorPid = {$themes.configuration.pages.shop.checkoutError}
            service = CodingMs\Shop\Service\Checkout\RequestCheckoutService
            button {
                title = tx_shop_label.request_button_title
                label = tx_shop_label.request_button_label
                icon = fa fa-shopping-cart
            }
            fields {
                available = {$themes.configuration.extension.shop.checkout.request.fields.available}
                required = {$themes.configuration.extension.shop.checkout.request.fields.required}
            }
            email {
                customerConfirmation {
                    active = {$themes.configuration.extension.shop.checkout.request.email.customerConfirmation.active}
                    from {
                        name = {$themes.configuration.extension.shop.email.from.name}
                        email = {$themes.configuration.extension.shop.email.from.email}
                    }
                    to {
                        # Customer address data
                    }
                    template = {$themes.configuration.extension.shop.email.templates.request.customerConfirmation}
                }
                order {
                    active = {$themes.configuration.extension.shop.checkout.request.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}
                    }
                    template = {$themes.configuration.extension.shop.email.templates.request.request}
                }
            }
        }
    }
}
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!