Loading...
Skip navigation
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 pre payment

An order has been successfully placed and an order number and invoice number have been assigned.For prepayment orders, shipping will only occur after full payment has been received.

The order is binding upon completion of the checkout process. Payment is made in advance by the customer and then manually recorded in the system.The order process is only completed once the payment has been processed and – if physical goods are involved – the order has been shipped.

stateDiagram-v2
    %% Frontend
    [*] --> prepared : Customer builds cart\nand starts checkout
    prepared --> ordered : Checkout completed\nConfirmation email\nInvoice number
    %% Payment required before shipping
    ordered --> paid : Payment recorded manually\n(payment received confirmed)
    %% Shipping & completion
    paid --> shipped : Goods shipped
    paid --> processed : Completed without shipping\n(e.g., digital service)
    shipped --> processed : Completed after shipping
    %% Cancellation due to non-payment
    ordered --> canceled_unpaid : No payment\nCancellation
    canceled_unpaid --> processed : Cancellation completed
    %% Conditions
    note right of processed
        Conditions:
        - paid_date MUST be set
        - shipped_date MUST be set
        if shipping has occurred
    end note

Further actions:

  • Returns: Possible as soon as the goods have been shipped – i.e., in the status shipped or processed.
  • Deletion: Deleting an order is only possible in the status prepared.

TypoScript Configuration

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}
                }
            }
        }
    }
}
Documentation
TYPO3 Shop Extension

TYPO3 Shop

This extension is an extensive shop for TYPO3 for realizing Webshops, Online-Shops or Payment-Subscriptions (comparable with tt_products, Quick-Shop or Aimeos).

Menu

Contact request

You can contact us at any time

Stop! Playing in the meantime?
Stop! Playing in the meantime?
Stop! Playing in the meantime?

Stop! Playing in the meantime?

Break the highscore

Press Start
Contact request
Screenreader label
Security question
TZW_________X4O______
C_T____G____P_____H4A
6_4___OAC___2J7______
C_L____X____I_K___FLY
89E_________I8N______