Please note that this documentation is for the most recent version of this extension. It may not be relevant for older versions. Related documentation can be found in the documentation directory of the extension.
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}
}
}
}
}
}
