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

Basket order on request

When you select "Inquiry" at checkout, no binding purchase is initiated. Instead, the customer can submit a shopping cart as a product/price/availability inquiry. The inquiry is managed as a separate process within the system: After the inquiry is submitted, an administrator can respond (e.g., with a quote or follow-up question) and then close the process.

Optionally, a follow-up process can be implemented upon request: for example, converting the inquiry into an order or generating a quote as a PDF. Feel free to contact us!

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:
      - Convert request into an order
      - Convert request into an offer PDF
    end note

TypoScript Configuration

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}
            }
            status {
                prepared {
                    allowed {
                        requested =
                    }
                }
                requested {
                    allowed {
                        answered =
                    }
                }
                answered {
                    allowed {
                        processed =
                    }
                }
                processed {
                    # End, but "allowed" must be defined!
                    allowed =
                }
            }
            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}
                }
            }
        }
    }
}
Documentation

TYPO3 Shop by coding.ms

An extensive shop for TYPO3 for realizing Webshops, Online-Shops or Payment-Subscriptions, comparable with tt_products, Cart or Aimeos. It includes PayPal, PayPal-Checkout, Klarna, Stripe, Bookmarks, UPS-API, invoice generation, a backend module, compare feature, graduated prices, plus product variants, filters, and tax and shipping logic for practical shop operations.

Menu
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!