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

Email configuration

Here you will find an overview of email configuration options for the TYPO3 Shop by coding.ms.

Email settings

The basic settings for recipient and sender email address is defined in the TypoScript setup. You can override the settings via an individual constants file.

Possible settings are: Email Recipient Name Enter the name of the recipient/receiving site here. Email Recipient Email Address Enter the email address of the recipient / receiving station here. Email Sender Name Enter the name of the sender / sending point here. Email Sender Email Address Enter the email address of the sender / sending point here. Email Type Specify here whether the email should be delivered as plain text (plain) or HTML (html). Email Footer Text Here you have the possibility to specify an optional text in the footer of the email. Email Subject Here you have the possibility to specify the subject for different checkout types.

Entries in an individual constant file

themes.configuration.extension.shop {

    # customsubcategory=shop_email=LLL:EXT:shop/Resources/Private/Language/locallang_constants.xlf:tx_shop_constants.subcategory_email
    email {
        from {
            # cat=shop/shop_email/; type=string; label=LLL:EXT:shop/Resources/Private/Language/locallang_constants.xlf:tx_shop_constants.email_from_email
            email = mail@domain.com
            # cat=shop/shop_email/; type=string; label=LLL:EXT:shop/Resources/Private/Language/locallang_constants.xlf:tx_shop_constants.email_from_name
            name = TYPO3 Shop-Extension
        }

        to {
            # cat=shop/shop_email/; type=string; label=LLL:EXT:shop/Resources/Private/Language/locallang_constants.xlf:tx_shop_constants.email_to_email
            email = mail@domain.com
            # cat=shop/shop_email/; type=string; label=LLL:EXT:shop/Resources/Private/Language/locallang_constants.xlf:tx_shop_constants.email_to_name
            name = TYPO3 Shop-Extension
        }

        cc {
            # cat=shop/shop_email/; type=string; label=LLL:EXT:shop/Resources/Private/Language/locallang_constants.xlf:tx_shop_constants.email_cc_email
            email =
            # cat=shop/shop_email/; type=string; label=LLL:EXT:shop/Resources/Private/Language/locallang_constants.xlf:tx_shop_constants.email_cc_name
            name = TYPO3 Shop-Extension
        }

        # cat=shop/shop_email/; type=options[LLL:EXT:shop/Resources/Private/Language/locallang_constants.xlf:tx_shop_constants.email_format_option_plain=plain,LLL:EXT:shop/Resources/Private/Language/locallang_constants.xlf:tx_shop_constants.email_format_option_html=html]; label=LLL:EXT:shop/Resources/Private/Language/locallang_constants.xlf:tx_shop_constants.email_format
        format = html
        templates {
            onInvoice {
                # cat=shop/shop_email/; type=string; label=LLL:EXT:shop/Resources/Private/Language/locallang_constants.xlf:tx_shop_constants.email_on_invoice_subject_customer_confirmation
                subjectCustomerConfirmation = Shop Product OnInvoice
                # cat=shop/shop_email/; type=string; label=LLL:EXT:shop/Resources/Private/Language/locallang_constants.xlf:tx_shop_constants.email_on_invoice_subject_order
                subjectOrder = Shop Product OnInvoice (Admin)
            }
            prePayment {
                # cat=shop/shop_email/; type=string; label=LLL:EXT:shop/Resources/Private/Language/locallang_constants.xlf:tx_shop_constants.email_pre_payment_subject_customer_confirmation
                subjectCustomerConfirmation = Shop Product PrePayment
                # cat=shop/shop_email/; type=string; label=LLL:EXT:shop/Resources/Private/Language/locallang_constants.xlf:tx_shop_constants.email_pre_payment_subject_order
                subjectOrder = Shop Product PrePayment (Admin)
            }
            request {
                # cat=shop/shop_email/; type=string; label=LLL:EXT:shop/Resources/Private/Language/locallang_constants.xlf:tx_shop_constants.email_request_subject_customer_confirmation
                subjectCustomerConfirmation = Shop Product Request
                # cat=shop/shop_email/; type=string; label=LLL:EXT:shop/Resources/Private/Language/locallang_constants.xlf:tx_shop_constants.email_request_subject_request
                subjectRequest = Shop Product Request (Admin)
            }
            sepa {
                # cat=shop/shop_email/; type=string; label=LLL:EXT:shop/Resources/Private/Language/locallang_constants.xlf:tx_shop_constants.email_sepa_subject_customer_confirmation
                subjectCustomerConfirmation = Shop Product SEPA
                # cat=shop/shop_email/; type=string; label=LLL:EXT:shop/Resources/Private/Language/locallang_constants.xlf:tx_shop_constants.email_sepa_subject_order
                subjectOrder = Shop Product SEPA (Admin)
            }
            revocation {
                # cat=shop/shop_email/; type=string; label=LLL:EXT:shop/Resources/Private/Language/locallang_constants.xlf:tx_shop_constants.email_revocation_subject_request
                subjectRequest = Revocation Request
                # cat=shop/shop_email/; type=string; label=LLL:EXT:shop/Resources/Private/Language/locallang_constants.xlf:tx_shop_constants.email_revocation_subject_submitted_admin
                subjectSubmittedAdmin = Revocation Received
                # cat=shop/shop_email/; type=string; label=LLL:EXT:shop/Resources/Private/Language/locallang_constants.xlf:tx_shop_constants.email_revocation_subject_submitted_customer
                subjectSubmittedCustomer = Revocation Submitted
            }
        }
    }

    checkout {
        # customsubcategory=shop_checkout_oninvoice=LLL:EXT:shop/Resources/Private/Language/locallang_constants.xlf:tx_shop_constants.subcategory_checkout_oninvoice
        onInvoice {
            # cat=shop/shop_checkout_oninvoice/20; type=boolean; label=LLL:EXT:shop/Resources/Private/Language/locallang_constants.xlf:tx_shop_constants.checkout_oninvoice_attach_product_files_to_admin_email
            attachProductFilesToAdminEmail = 0
            # cat=shop/shop_checkout_oninvoice/25; type=boolean; label=LLL:EXT:shop/Resources/Private/Language/locallang_constants.xlf:tx_shop_constants.checkout_oninvoice_attach_product_files_to_customer_email
            attachProductFilesToCustomerEmail = 0
            # cat=shop/shop_checkout_oninvoice/30; type=boolean; label=LLL:EXT:shop/Resources/Private/Language/locallang_constants.xlf:tx_shop_constants.checkout_oninvoice_attach_invoice_to_admin_email
            attachInvoiceToAdminEmail = 1
            # cat=shop/shop_checkout_oninvoice/40; type=boolean; label=LLL:EXT:shop/Resources/Private/Language/locallang_constants.xlf:tx_shop_constants.checkout_oninvoice_attach_invoice_to_customer_email
            attachInvoiceToCustomerEmail = 1
            # cat=shop/shop_checkout_oninvoice/60; type=boolean; label=LLL:EXT:shop/Resources/Private/Language/locallang_constants.xlf:tx_shop_constants.checkout_oninvoice_attach_delivery_note_to_admin_email
            attachDeliveryNoteToAdminEmail = 0
            # cat=shop/shop_checkout_oninvoice/70; type=boolean; label=LLL:EXT:shop/Resources/Private/Language/locallang_constants.xlf:tx_shop_constants.checkout_oninvoice_attach_delivery_note_to_customer_email
            attachDeliveryNoteToCustomerEmail = 0
            # cat=shop/shop_checkout_oninvoice/90; type=boolean; label=LLL:EXT:shop/Resources/Private/Language/locallang_constants.xlf:tx_shop_constants.checkout_oninvoice_attach_order_xml_to_admin_email
            attachOrderXmlToAdminEmail = 0
            email {
                customerConfirmation {
                    # cat=shop/shop_checkout_oninvoice/70; type=boolean; label=LLL:EXT:shop/Resources/Private/Language/locallang_constants.xlf:tx_shop_constants.checkout_oninvoice_email_customer_confirmation_active
                    active = 1
                }
                order {
                    # cat=shop/shop_checkout_oninvoice/80; type=boolean; label=LLL:EXT:shop/Resources/Private/Language/locallang_constants.xlf:tx_shop_constants.checkout_oninvoice_email_order_active
                    active = 1
                }
            }
        }

        # customsubcategory=shop_checkout_prepayment=LLL:EXT:shop/Resources/Private/Language/locallang_constants.xlf:tx_shop_constants.subcategory_checkout_prepayment
        prePayment {
            # cat=shop/shop_checkout_prepayment/20; type=boolean; label=LLL:EXT:shop/Resources/Private/Language/locallang_constants.xlf:tx_shop_constants.checkout_prepayment_attach_product_files_to_admin_email
            attachProductFilesToAdminEmail = 0
            # cat=shop/shop_checkout_prepayment/25; type=boolean; label=LLL:EXT:shop/Resources/Private/Language/locallang_constants.xlf:tx_shop_constants.checkout_prepayment_attach_product_files_to_customer_email
            attachProductFilesToCustomerEmail = 0
            # cat=shop/shop_checkout_prepayment/30; type=boolean; label=LLL:EXT:shop/Resources/Private/Language/locallang_constants.xlf:tx_shop_constants.checkout_prepayment_attach_invoice_to_admin_email
            attachInvoiceToAdminEmail = 1
            # cat=shop/shop_checkout_prepayment/40; type=boolean; label=LLL:EXT:shop/Resources/Private/Language/locallang_constants.xlf:tx_shop_constants.checkout_prepayment_attach_invoice_to_customer_email
            attachInvoiceToCustomerEmail = 1
            # cat=shop/shop_checkout_prepayment/60; type=boolean; label=LLL:EXT:shop/Resources/Private/Language/locallang_constants.xlf:tx_shop_constants.checkout_prepayment_attach_delivery_note_to_admin_email
            attachDeliveryNoteToAdminEmail = 0
            # cat=shop/shop_checkout_prepayment/70; type=boolean; label=LLL:EXT:shop/Resources/Private/Language/locallang_constants.xlf:tx_shop_constants.checkout_prepayment_attach_delivery_note_to_customer_email
            attachDeliveryNoteToCustomerEmail = 0
            # cat=shop/shop_checkout_prepayment/90; type=boolean; label=LLL:EXT:shop/Resources/Private/Language/locallang_constants.xlf:tx_shop_constants.checkout_prepayment_attach_order_xml_to_admin_email
            attachOrderXmlToAdminEmail = 0
            email {
                customerConfirmation {
                    # cat=shop/shop_checkout_prepayment/70; type=boolean; label=LLL:EXT:shop/Resources/Private/Language/locallang_constants.xlf:tx_shop_constants.checkout_prepayment_email_customer_confirmation_active
                    active = 1
                }
                order {
                    # cat=shop/shop_checkout_prepayment/80; type=boolean; label=LLL:EXT:shop/Resources/Private/Language/locallang_constants.xlf:tx_shop_constants.checkout_prepayment_email_order_active
                    active = 1
                }
            }
        }
        # customsubcategory=shop_checkout_request=LLL:EXT:shop/Resources/Private/Language/locallang_constants.xlf:tx_shop_constants.subcategory_checkout_request
        request {
            # cat=shop/shop_checkout_request/20; type=boolean; label=LLL:EXT:shop/Resources/Private/Language/locallang_constants.xlf:tx_shop_constants.checkout_request_attach_product_files_to_admin_email
            attachProductFilesToAdminEmail = 0
            # cat=shop/shop_checkout_request/25; type=boolean; label=LLL:EXT:shop/Resources/Private/Language/locallang_constants.xlf:tx_shop_constants.checkout_request_attach_product_files_to_customer_email
            attachProductFilesToCustomerEmail = 0
            # cat=shop/shop_checkout_request/30; type=boolean; label=LLL:EXT:shop/Resources/Private/Language/locallang_constants.xlf:tx_shop_constants.checkout_request_attach_invoice_to_admin_email
            attachInvoiceToAdminEmail = 0
            # cat=shop/shop_checkout_request/40; type=boolean; label=LLL:EXT:shop/Resources/Private/Language/locallang_constants.xlf:tx_shop_constants.checkout_request_attach_invoice_to_customer_email
            attachInvoiceToCustomerEmail = 0
            # cat=shop/shop_checkout_request/60; type=boolean; label=LLL:EXT:shop/Resources/Private/Language/locallang_constants.xlf:tx_shop_constants.checkout_request_attach_delivery_note_to_admin_email
            attachDeliveryNoteToAdminEmail = 0
            # cat=shop/shop_checkout_request/70; type=boolean; label=LLL:EXT:shop/Resources/Private/Language/locallang_constants.xlf:tx_shop_constants.checkout_request_attach_delivery_note_to_customer_email
            attachDeliveryNoteToCustomerEmail = 0
            # cat=shop/shop_checkout_request/90; type=boolean; label=LLL:EXT:shop/Resources/Private/Language/locallang_constants.xlf:tx_shop_constants.checkout_request_attach_order_xml_to_admin_email
            attachOrderXmlToAdminEmail = 0
            email {
                customerConfirmation {
                    # cat=shop/shop_checkout_request/70; type=boolean; label=LLL:EXT:shop/Resources/Private/Language/locallang_constants.xlf:tx_shop_constants.checkout_request_email_customer_confirmation_active
                    active = 1
                }
                order {
                    # cat=shop/shop_checkout_request/80; type=boolean; label=LLL:EXT:shop/Resources/Private/Language/locallang_constants.xlf:tx_shop_constants.checkout_request_email_order_active
                    active = 1
                }
            }
        }
        # customsubcategory=shop_checkout_sepa=LLL:EXT:shop/Resources/Private/Language/locallang_constants.xlf:tx_shop_constants.subcategory_checkout_sepa
        sepa {
            # cat=shop/shop_checkout_sepa/20; type=boolean; label=LLL:EXT:shop/Resources/Private/Language/locallang_constants.xlf:tx_shop_constants.checkout_sepa_attach_product_files_to_admin_email
            attachProductFilesToAdminEmail = 0
            # cat=shop/shop_checkout_sepa/25; type=boolean; label=LLL:EXT:shop/Resources/Private/Language/locallang_constants.xlf:tx_shop_constants.checkout_sepa_attach_product_files_to_customer_email
            attachProductFilesToCustomerEmail = 0
            # cat=shop/shop_checkout_sepa/30; type=boolean; label=LLL:EXT:shop/Resources/Private/Language/locallang_constants.xlf:tx_shop_constants.checkout_sepa_attach_invoice_to_admin_email
            attachInvoiceToAdminEmail = 1
            # cat=shop/shop_checkout_sepa/35; type=boolean; label=LLL:EXT:shop/Resources/Private/Language/locallang_constants.xlf:tx_shop_constants.checkout_sepa_attach_sepa_mandate_to_admin_email
            attachSepaMandateToAdminEmail = 1
            # cat=shop/shop_checkout_sepa/40; type=boolean; label=LLL:EXT:shop/Resources/Private/Language/locallang_constants.xlf:tx_shop_constants.checkout_sepa_attach_invoice_to_customer_email
            attachInvoiceToCustomerEmail = 1
            # cat=shop/shop_checkout_sepa/45; type=boolean; label=LLL:EXT:shop/Resources/Private/Language/locallang_constants.xlf:tx_shop_constants.checkout_sepa_attach_sepa_mandate_to_customer_email
            attachSepaMandateToCustomerEmail = 1
            # cat=shop/shop_checkout_sepa/60; type=boolean; label=LLL:EXT:shop/Resources/Private/Language/locallang_constants.xlf:tx_shop_constants.checkout_sepa_attach_delivery_note_to_admin_email
            attachDeliveryNoteToAdminEmail = 0
            # cat=shop/shop_checkout_sepa/70; type=boolean; label=LLL:EXT:shop/Resources/Private/Language/locallang_constants.xlf:tx_shop_constants.checkout_sepa_attach_delivery_note_to_customer_email
            attachDeliveryNoteToCustomerEmail = 0
            # cat=shop/shop_checkout_sepa/90; type=boolean; label=LLL:EXT:shop/Resources/Private/Language/locallang_constants.xlf:tx_shop_constants.checkout_sepa_attach_order_xml_to_admin_email
            attachOrderXmlToAdminEmail = 0
            email {
                customerConfirmation {
                    # cat=shop/shop_checkout_sepa/70; type=boolean; label=LLL:EXT:shop/Resources/Private/Language/locallang_constants.xlf:tx_shop_constants.checkout_sepa_email_customer_confirmation_active
                    active = 1
                }
                order {
                    # cat=shop/shop_checkout_sepa/80; type=boolean; label=LLL:EXT:shop/Resources/Private/Language/locallang_constants.xlf:tx_shop_constants.checkout_sepa_email_order_active
                    active = 1
                }
            }
        }
    }
}

Entries in an individual setup file

plugin.tx_shop {
    settings{
        email {
            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}
            }

            format = {$themes.configuration.extension.shop.email.format}
            footer (
TYPO3  Shop Extension by coding.ms
www:   www.coding.ms
email: typo3@coding.ms
            )
        }
        basketOrder {
            orderOptions {
                onInvoice {
                    email {
                        customerConfirmation {
                            active = {$themes.configuration.extension.shop.checkout.onInvoice.email.customerConfirmation.active}
                            from {
                                name = {$themes.configuration.extension.shop.email.from.name}
                                email = {$themes.configuration.extension.shop.email.from.email}
                            }
                            to {
                                # Customer address data
                            }
                            subject = {$themes.configuration.extension.shop.email.templates.onInvoice.subjectCustomerConfirmation}
                        }
                        order {
                            active = {$themes.configuration.extension.shop.checkout.onInvoice.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}
                            }
                            subject = {$themes.configuration.extension.shop.email.templates.onInvoice.subjectOrder}
                        }
                    }
                }
                prePayment {
                    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
                            }
                            subject = {$themes.configuration.extension.shop.email.templates.prePayment.subjectCustomerConfirmation}
                        }
                        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}
                            }
                            subject = {$themes.configuration.extension.shop.email.templates.prePayment.subjectOrder}
                        }
                    }
                }
                request {
                    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
                            }
                            subject = {$themes.configuration.extension.shop.email.templates.request.subjectCustomerConfirmation}
                        }
                        request {
                            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}
                            }
                            subject = {$themes.configuration.extension.shop.email.templates.request.subjectRequest}
                        }
                    }
                }

                payPal {
                    email {
                        customerConfirmation {
                            active = {$themes.configuration.extension.shop.checkout.payPal.email.customerConfirmation.active}
                            from {
                                name = {$themes.configuration.extension.shop.email.from.name}
                                email = {$themes.configuration.extension.shop.email.from.email}
                            }
                            to {
                                # Customer address data
                            }
                            subject = {$themes.configuration.extension.shop.email.templates.payPal.subjectCustomerConfirmation}
                        }
                        order {
                            active = {$themes.configuration.extension.shop.checkout.payPal.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}
                            }
                            subject = {$themes.configuration.extension.shop.email.templates.payPal.subjectOrder}
                        }
                    }
                }
                payPalCheckout {
                    email {
                        customerConfirmation {
                            active = {$themes.configuration.extension.shop.checkout.payPalCheckout.email.customerConfirmation.active}
                            from {
                                name = {$themes.configuration.extension.shop.email.from.name}
                                email = {$themes.configuration.extension.shop.email.from.email}
                            }
                            to {
                                # Customer address data
                            }
                            subject = {$themes.configuration.extension.shop.email.templates.payPalCheckout.subjectCustomerConfirmation}
                        }
                        order {
                            active = {$themes.configuration.extension.shop.checkout.payPalCheckout.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}
                            }
                            subject = {$themes.configuration.extension.shop.email.templates.payPalCheckout.subjectOrder}
                        }
                    }
                }
                klarna {
                    email {
                        customerConfirmation {
                            active = {$themes.configuration.extension.shop.checkout.klarna.email.customerConfirmation.active}
                            from {
                                name = {$themes.configuration.extension.shop.email.from.name}
                                email = {$themes.configuration.extension.shop.email.from.email}
                            }
                            to {
                                # Customer address data
                            }
                            subject = {$themes.configuration.extension.shop.email.templates.klarna.subjectCustomerConfirmation}
                        }
                        order {
                            active = {$themes.configuration.extension.shop.checkout.klarna.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}
                            }
                            subject = {$themes.configuration.extension.shop.email.templates.klarna.subjectOrder}
                        }
                    }
                }
                stripe {
                    email {
                        customerConfirmation {
                            active = {$themes.configuration.extension.shop.checkout.stripe.email.customerConfirmation.active}
                            from {
                                name = {$themes.configuration.extension.shop.email.from.name}
                                email = {$themes.configuration.extension.shop.email.from.email}
                            }
                            to {
                                # Customer address data
                            }
                            subject = {$themes.configuration.extension.shop.email.templates.stripe.subjectCustomerConfirmation}
                        }
                        order {
                            active = {$themes.configuration.extension.shop.checkout.stripe.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}
                            }
                            subject = {$themes.configuration.extension.shop.email.templates.stripe.subjectOrder}
                        }
                    }
                }
            }
        }
    }
}

Override Email Templates

You can override email templates by adding the following to your ext_localconf.php in your site-package:

$GLOBALS['TYPO3_CONF_VARS']['MAIL']['layoutRootPaths'][1707217385] = 'EXT:your_extension/Resources/Private/Templates/Email/';
$GLOBALS['TYPO3_CONF_VARS']['MAIL']['templateRootPaths'][1707217385] = 'EXT:your_extension/Resources/Private/Templates/Email/';
$GLOBALS['TYPO3_CONF_VARS']['MAIL']['partialRootPaths'][1707217385] = 'EXT:your_extension/Resources/Private/Partials/Email/';

Simply use the current timestamp as the array index to ensure that your entry is at the top and is therefore taken first.

A file/folder structure could look like this:

📄 your_extension/Resources/Private
├─ 📂 Partials
│  ├─ 📂 Email
│  │  ├─ 📄 OrderSummary.html
│  │  └─ 📄 OrderSummaryPlain.txt
└─ 📂 Templates
   └─ 📂 Email
      ├─ 📂 Checkout
      │  ├─ 📂 OnInvoice
      │  │  ├─ 📄 CustomerConfirmation.html
      │  │  ├─ 📄 CustomerConfirmation.txt
      │  │  ├─ 📄 Order.html
      │  │  └─ 📄 Order.txt
      │  ├─ 📂 PrePayment
      │  │  ├─ 📄 CustomerConfirmation.html
      │  │  ├─ 📄 CustomerConfirmation.txt
      │  │  ├─ 📄 Order.html
      │  │  └─ 📄 Order.txt
      │  ├─ 📂 Request
      │  │  ├─ 📄 CustomerConfirmation.html
      │  │  ├─ 📄 CustomerConfirmation.txt
      │  │  ├─ 📄 Order.html
      │  │  └─ 📄 Order.txt
      │  ├─ 📂 Klarna
      │  │  ├─ 📄 CustomerConfirmation.html
      │  │  ├─ 📄 CustomerConfirmation.txt
      │  │  ├─ 📄 Order.html
      │  │  └─ 📄 Order.txt
      │  ├─ 📂 PayPal
      │  │  ├─ 📄 CustomerConfirmation.html
      │  │  ├─ 📄 CustomerConfirmation.txt
      │  │  ├─ 📄 Order.html
      │  │  └─ 📄 Order.txt
      │  ├─ 📂 PayPalCheckout
      │  │  ├─ 📄 CustomerConfirmation.html
      │  │  ├─ 📄 CustomerConfirmation.txt
      │  │  ├─ 📄 Order.html
      │  │  └─ 📄 Order.txt
      │  └─ 📂 Stripe
      │     ├─ 📄 CustomerConfirmation.html
      │     ├─ 📄 CustomerConfirmation.txt
      │     ├─ 📄 Order.html
      │     └─ 📄 Order.txt
      ├─ 📂 Revocation
      │  ├─ 📄 Request.html
      │  ├─ 📄 SubmittedAdmin.html
      │  └─ 📄 SubmittedCustomer.html
      └─ 📂 ShopCustomer
         ├─ 📂 Message
         │  └─ 📄 DefaultMessage.html
         └─ 📄 Message.html
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!