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 Checkout
The Shop extension comes with 11 predefined checkout types. These are:
requestProducts are only requested via the shopping cart. No shipment or similar action takes place.onInvoiceProducts are to be paid for by invoice. This means the goods are shipped immediately and paid for later by invoice.prePaymentProducts are to be paid for in advance. This means payment must be received before the goods are shipped.sepa(SEPA Direct Debit)payPalProducts are paid for directly via PayPal Wallet. (Requires the Pro version of the shop extension)payPalCheckoutProducts are paid for directly via PayPal Checkout. (Requires the Pro version of the shop extension)stripeProducts are paid for directly via Stripe. (Requires the Pro version of the shop extension)klarnaProducts are paid for directly via Klarna. (Requires Pro version of the shop extension)manual(SEPA Direct Debit)stornoAn order has been placed and an order and invoice number have been assigned. The goods have not yet been shipped and paid for, and the order must be cancelled – this cancellation order is created as a result. This cancellation order references the original order and includes all products and the total amount.returnAn order has been placed and an order and invoice number have been assigned. Now the goods have been delivered and one or more products are to be returned – this return order is created as a result.
Attention:
Editing and deleting an order record is only possible in the
preparedstatus. Once the order has reached theorderedstatus and received an invoice number, it may no longer be changed!
Possible Payment Providers
The following payment methods can be covered by the payment providers listed above (as of November 1, 2025):
| Payment Method | PayPal-Wallet | PayPal Checkout | Stripe | Klarna |
|---|---|---|---|---|
| PayPal Wallet | Yes | Yes | No | No |
| Credit Card | Yes (via PayPal) | Yes | Yes | No |
| Apple Pay | No | Yes (limited rollout) | Yes | No |
| Google Pay | No | Yes (limited rollout) | Yes | No |
| SEPA Direct Debit | Yes (via PayPal) | Yes | Yes | No |
| BLIK (PLN, Poland) | No | No | Yes | No |
| Przelewy24 (P24) | No | No | Yes | No |
| iDEAL (NL) | No | Yes | Yes | No |
| Bancontact (BE) | No | Yes | Yes | No |
| EPS (AT) | No | Yes | Yes | No |
| Giropay (DE) | No | Yes | Yes | No |
| Sofort (DE/AT) | No | Yes | Yes | Yes |
| Trustly | No | Yes | Yes | No |
| Klarna “Pay Now” | No | No | Yes | Yes |
| Klarna “Pay Later” (Invoice/Installments) | No | No | Yes | Yes |
Notice:
The availability of specific payment methods may vary depending on the product type, country of sale, or buyer account. Not all payment methods are available in every market or for every transaction.
General configuration
checkoutPidEnter the page UID of the checkout page.minimummOrderValueEnter the minimum order value (in cents).timeForPaymentEnter the giving amount of days for payment.deliveryTimeEnter an optional text for describing the delivery time for payment.orderOptionsDefine the checkout types here. We will look at this in more detail in another section.fieldDefinitionConfigure the form fields for checkout. These are configured in the respective TypoScript node to make them available in the various checkouts.
Further checkout-specific configurations can be found on the relevant documentation page.
TypoScript configuration checkout basis
plugin.tx_shop.settings.basketOrder {
# Page-ID des Checkout
checkoutPid = {$themes.configuration.pages.shop.checkout}
# Minimum order value in cents
minimumOrderValue = {$themes.configuration.extension.shop.basket.minimumOrderValue}
# Time for payment in days default value
timeForPayment = {$themes.configuration.extension.shop.basketOrder.timeForPayment}
# Default string for delivery time notice in basket above the additional costs
deliveryTime = {$themes.configuration.extension.shop.checkout.deliveryTime}
creditorIdentifier = {$themes.configuration.extension.shop.checkout.creditorIdentifier}
merchantName = {$themes.configuration.extension.shop.checkout.merchantName}
orderNumber = {$themes.configuration.extension.shop.checkout.orderNumber}
paymentSwitchInCheckout = {$themes.configuration.extension.shop.checkout.paymentSwitchInCheckout}
defaultPayment = {$themes.configuration.extension.shop.checkout.defaultPayment}
# VAT information depending on country and b2b/b2c
vat {
b2b {
inland {
notice = Es handelt sich um eine Inland-Lieferung an ein Unternehmen.<br />Ihre USt.-ID: %1$s
}
europeanUnion {
# Parameter is VAT-ID in basket order
notice = Es handelt sich um eine steuerbefreite innergemeinschaftliche Lieferung gem. §4 Nr. 1b UstG.<br />Unsere USt.-ID: DE 123 456 789<br />Ihre USt.-ID: %1$s
}
thirdCountry {
notice = Es handelt sich um eine steuerbefreite Ausfuhrlieferung gem. §4 Nr. 1a UstG.
}
}
b2c {
inland {
notice = Es handelt sich um eine Inland-Lieferung an eine Privatperson.
}
europeanUnion {
notice = Es handelt sich um eine innergemeinschaftliche Lieferung an eine Privatperson.
}
thirdCountry {
notice = Es handelt sich um eine steuerbefreite Ausfuhrlieferung gem. §4 Nr. 1a UstG.
}
}
}
orderOptions {
# Different order options
}
}
Payment Method Selection in Checkout
To allow customers to switch their payment method during checkout, a payment method selection can be enabled. This can be activated using the TypoScript constant themes.configuration.extension.shop.checkout.paymentSwitchInCheckout. Currently, the two values title and description from the orderOptions configuration are used in the TypoScript to provide selection labels. Additionally, the default payment method, which is selected first when the checkout process is initiated, can be specified in the TypoScript constant themes.configuration.extension.shop.checkout.defaultPayment.
Frontend Users with Login
If a customer is already logged in at checkout, their data from the user record is automatically entered into the order form. This data is read-only, as there should only be one central point for editing.
To allow the customer to adjust their account data, a profile editing page can be integrated using the EXT:modules extension (as is common in large online stores like Amazon, Shopware, Shopify, Aimeos, Magento, or PrestaShop). This extension should already be installed, as it is a dependency of the store. Once the corresponding TypoScript constant with the page ID has been configured, the link will appear. The constant entry could look like this: themes.configuration.pages.profile = 1947.
If you are using a different extension for profile editing, no problem. Then you still set the target page via the TypoScript constant themes.configuration.pages.profile or directly via setup TypoScript with, for example, plugin.tx_modules.settings.pages.profile = 1947.
