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

Basket Checkout

The Shop extension comes with 8 predefined checkout types. These are:

  • request
  • prePayment
  • onInvoice
  • sepa (aka direct debit)
  • payPal (requires Pro Version of the Shop extension)
  • payPalCheckout (requires Pro Version of the Shop extension)
  • klarna (requires Pro Version of the Shop extension)
  • stripe (requires Pro Version of the Shop extension)

Possible Payment Providers

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

  • checkoutPid Enter the page UID of the checkout page.
  • minimummOrderValue Enter the minimum order value (in cents).
  • timeForPayment Enter the giving amount of days for payment.
  • deliveryTime Enter an optional text for describing the delivery time for payment.
  • orderOptions Define the checkout types here. We will look at this in more detail in another section.
  • fieldDefinition Configure 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.

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!