Bitte beachte, dass sich diese Dokumentation auf die neuste Version dieser Erweiterung bezieht. Wenn eine ältere Version eingesetzt wird, kann diese abweichen. Die jeweils passende Dokumentation befindet sich im Dokumentation-Verzeichnis der Erweiterung.
Warenkorb Bestellung auf Vorauskasse
Eine Bestellung wurde erfolgreich aufgegeben und es wurde eine Bestell- sowie Rechnungsnummer vergeben.Bei der Zahlart Vorkasse (prePayment) erfolgt der Versand erst nach vollständigem Zahlungseingang.
Die Bestellung gilt ab dem Abschluss des Checkouts als verbindlich. Die Zahlung wird vom Kunden vorab geleistet und anschließend manuell im System verbucht.Der Bestellprozess wird erst dann abgeschlossen, wenn die Zahlung erfasst und – sofern es sich um physische Ware handelt – der Versand durchgeführt wurde.
stateDiagram-v2
%% Frontend
[*] --> prepared : Kunde stellt Warenkorb zusammen\nund startet Checkout
prepared --> ordered : Checkout abgeschlossen\nBestätigungsmail\nRechnungsnummer
%% Zahlung zwingend vor Versand
ordered --> paid : Zahlung manuell verbucht\n(Geldeingang bestätigt)
%% Versand & Abschluss
paid --> shipped : Ware versendet
paid --> processed : Abschluss ohne Versand\n(z. B. digitale Leistung)
shipped --> processed : Abschluss nach Versand
%% Abbruch bei Nichtzahlung
ordered --> canceled_unpaid : Keine Zahlung\nStorno
canceled_unpaid --> processed : Storno abgeschlossen
%% Conditions
note right of processed
Conditions:
- 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
shippedoderprocessed. - Löechen: Das Löschen einer Bestellung ist nur im Status
preparedmöglich.
TypoScript Konfiguration
plugin.tx_shop.settings.basketOrder {
orderOptions {
prePayment {
active = {$themes.configuration.extension.shop.checkout.prePayment.active}
attachProductFilesToAdminEmail = {$themes.configuration.extension.shop.checkout.prePayment.attachProductFilesToAdminEmail}
attachProductFilesToCustomerEmail = {$themes.configuration.extension.shop.checkout.prePayment.attachProductFilesToCustomerEmail}
attachInvoiceToAdminEmail = {$themes.configuration.extension.shop.checkout.prePayment.attachInvoiceToAdminEmail}
attachInvoiceToCustomerEmail = {$themes.configuration.extension.shop.checkout.prePayment.attachInvoiceToCustomerEmail}
attachDeliveryNoteToAdminEmail = {$themes.configuration.extension.shop.checkout.prePayment.attachDeliveryNoteToAdminEmail}
attachDeliveryNoteToCustomerEmail = {$themes.configuration.extension.shop.checkout.prePayment.attachDeliveryNoteToCustomerEmail}
attachOrderXmlToAdminEmail = {$themes.configuration.extension.shop.checkout.prePayment.attachOrderXmlToAdminEmail}
storeOrderXmlInFolder = {$themes.configuration.extension.shop.checkout.prePayment.storeOrderXmlInFolder}
storeOrderXmlInFolderName = {$themes.configuration.extension.shop.checkout.prePayment.storeOrderXmlInFolderName}
type = prePayment
checkoutPid = {$themes.configuration.pages.shop.checkout}
successPid = {$themes.configuration.pages.shop.checkoutSuccess}
errorPid = {$themes.configuration.pages.shop.checkoutError}
service = CodingMs\Shop\Service\Checkout\PrePaymentCheckoutService
button {
title = tx_shop_label.pre_payment_button_title
label = tx_shop_label.pre_payment_button_label
icon = fa fa-shopping-cart
}
fields {
available = {$themes.configuration.extension.shop.checkout.prePayment.fields.available}
required = {$themes.configuration.extension.shop.checkout.prePayment.fields.required}
}
status {
prepared {
allowed {
ordered =
}
}
ordered {
allowed {
paid =
canceled_unpaid =
}
}
paid {
allowed {
shipped {
# Show marked-as-shipped when not "only digital products" are in basket-order
condition {
basket = NotContainsDigitalProductsOnly
}
}
processed {
# Show marked-as-shipped when "only digital products" are in basket-order
condition {
basket = ContainsDigitalProductsOnly
}
}
}
}
shipped {
# Hide whole shipped state when "only digital products" are in basket-order
hidden {
condition {
basket = ContainsDigitalProductsOnly
}
}
allowed {
processed =
returned {
# Show marked-as-returned when not "only digital products" are in basket-order
condition {
basket = NotContainsDigitalProductsOnly
}
}
}
}
canceled_unpaid {
allowed {
processed =
}
}
processed {
allowed {
returned {
# Show marked-as-returned when not "only digital products" are in basket-order
condition {
basket = NotContainsDigitalProductsOnly
}
}
}
}
}
email {
customerConfirmation {
active = {$themes.configuration.extension.shop.checkout.prePayment.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.prePayment.customerConfirmation}
}
order {
active = {$themes.configuration.extension.shop.checkout.prePayment.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.prePayment.order}
}
}
}
}
}
