Help · Payment · Express Checkout with Stripe

Express Checkout with Stripe: set up, offer, check

How to offer Apple Pay, Google Pay and Link as an express purchase: set up the Stripe module, enable shipping methods, understand the notice that replaces the button and check restored orders.

3 places in the shop: off-canvas cart, cart page and login page
5 payment methods for the express button, enabled in the Stripe module
6 reasons for a notice instead of the button
Verified the shop checks every express payment with Stripe before it counts as paid

At a glance

  • Express purchase: The customer pays in the payment window of their wallet and skips the address entry, the shipping selection and the order review of the shop.
  • Setup: The Stripe module with keys and express purchase allowed, Stripe enabled for the shipping methods, your domain registered with Stripe.
  • Notice instead of the button: If the cart needs a step of the regular checkout, such as consent in the order review, the shop shows a notice and the customer orders via the regular checkout. from 4.10.0
  • Unclear payment status: If the payment status of a wallet payment is unclear, the shop accepts no second Stripe payment in this session. from 4.10.0
  • Restoration: If a paid purchase has no order, the shop creates the order by itself. Check such orders before you send the customer the order confirmation.
  • Availability: Features with this label come with the update; no add-on module is needed. from 4.10.0

In this guide


How express checkout with Stripe works

With the express button, the customer pays directly in the payment window of their wallet. They skip the address entry, the shipping selection and the order review of the shop.

  1. Button: In the cart, the customer chooses a payment method, for example Apple Pay or Google Pay.
  2. Wallet: In the payment window, they choose the delivery address and the shipping method. The shop then calculates the shipping costs and the total.
  3. Check: After the payment, the shop asks Stripe whether the money has arrived.
  4. Order: Only then does it create the order. If the customer does not return after paying, the shop creates the order later by itself.

Where the button appears

In the off-canvas cart, on the cart page and on the login page, there only with items in the cart. Above it is the label “Express Checkout”, on the login page “Express checkout”. Product pages have no Stripe express button.

Which payment methods

Apple Pay, Google Pay and Link (Stripe’s own payment feature) as well as PayPal and Amazon Pay, depending on the selection in the Stripe module. Stripe decides for each device and browser whether a button actually appears.

Other express buttons

The buttons of the separate modules Amazon Pay and PayPal Checkout do not belong to Stripe. They lead back to the order review of the shop.


Set up express checkout

You set it up in two places: in the Stripe module of your shop and in the dashboard of your Stripe account.

In the shop

  1. Open the module: Under Settings → Checkout → Payment methods, edit the module “Stripe”.
  2. Activate: Switch on “Payment by Stripe” and enter the “Public key” and the “secret key” from your Stripe account.
  3. Choose payment methods: The table “methods of payment” with the help text “Select here which payment methods you want to offer via Stripe.” defines which of the five payment methods listed in the overview below may appear in the express button. The same table also determines the Stripe payment methods in the regular checkout. Several rows are possible, for example “Credit cards, ApplePay, GooglePay” and “PayPal”.
  4. Allow express purchase: “Allow Stripe checkout (express purchase)” stays switched on; that is the default. When it is off, no button appears in any of the three places.
  5. Enable shipping methods: In the “Shipping and Payment” tab of the module, enable Stripe for the shipping methods the wallet should offer, and also for the module “FREE SHIPPING!”, even if you do not offer this shipping method at all. If Stripe is not enabled for “FREE SHIPPING!” or for the shipping method chosen in the cart (without a choice, the cheapest one), no button appears. Do not enable Stripe for the shipping methods under “Shipping costs determined after the order (shipping modules)” (Settings → Checkout → Shipping/packaging): for them, the wallet would collect the total without shipping.
  6. Save: When you save, the shop creates or updates its webhook endpoint at Stripe. Through the webhook, it learns about payments even if the customer does not return to the shop.
Row in the table “methods of payment” Payment methods in the express button
“Credit cards, ApplePay, GooglePay” (default) Apple Pay, Google Pay and Link
“PayPal” PayPal
“AmazonPay” Amazon Pay
“All payment methods” Apple Pay, Google Pay, Link, PayPal and Amazon Pay

At Stripe

  • Register your domain: In the Stripe Dashboard, register every domain on which the buttons appear, including subdomains such as www, and for tests also in test mode. This is mandatory for Apple Pay. Stripe also lists the registration for Google Pay, Link, PayPal and Amazon Pay. You register on the “Payment method domains” page (Stripe’s instructions). The shop has no function of its own for this.
  • Activate payment methods: Which buttons Stripe shows also depends on which payment methods are active in your Stripe account. Some of them have to be activated there first.
  • Klarna: The table “methods of payment” does not control Klarna in the express button. If Klarna is active in your Stripe account, Stripe can show it there in addition. The order is then probably only created through the restoration, as with PayPal.
  • Customer’s device: A wallet button only appears if the browser, the device and the currency support the payment method and the customer has set it up. For example, Stripe shows no Google Pay button if Google Pay is not set up.
Check the webhook: The health check under Tools → Server info & health check reports if no webhook endpoint for your shop is registered at Stripe or if the “Webhook Secret” is missing. It offers a button for both cases. “Re-create endpoint + capture secret” enters the secret by itself. The health check does not detect a wrong secret, see Pitfalls.

When the shop does not offer express checkout

If the cart needs a step of the regular checkout, a notice replaces the Stripe button. In other cases, the button is missing without a notice.

Notice instead of the button

On the express path, the customer skips the steps of the regular checkout, including the order review with its consents. In the off-canvas cart, on the cart page and on the login page, a notice therefore takes the place of the Stripe button. from 4.10.0

Notice in the shop: “Express checkout is not available for this shopping cart: at least one item requires your confirmation or a check before ordering (e.g. a service, digital content, B-stock goods, age verification or a file upload). Please order via the regular checkout.”

The customer then orders via the regular checkout. These six reasons trigger the notice:

Reason When Why
Service An item is marked as “Service product”, and under Settings → Checkout → General both “Right of withdrawal in the order process on/off” and “Exclusion from the right of revocation for digital goods and services” are switched on. The order review obtains the consent that the service begins before the withdrawal period ends (Section 356(5) BGB).
Digital content The same two switches, plus “Enable download of products” under Settings → Checkout → Download and an active download of the type “Purchase download” on the item with a description in the customer’s language. The order review obtains the consent that the provision begins before the withdrawal period ends (Section 356(6) BGB).
B-stock goods An item is marked as “Second-hand goods/defective copy (B-goods)”. Always applies. The order review obtains the express confirmation for B-stock goods (Section 476 BGB).
Age limit An item carries “FSK 18”. Always applies. The express path has no age verification.
File upload An item requires “Upload required (when purchasing)”, and the file is still missing at this cart position. The file must be available before the order.
Download without an account An item with a purchase download is in the cart, and the buyer is not signed in with a customer account. Applies regardless of “Enable download of products”. Without a customer account, the buyer could not get to their file. The regular checkout therefore requires an account.
  • Reason no longer applies: Once the customer signs in with their customer account, “Download without an account” no longer applies. Once they upload the required file, “File upload” no longer applies. The button appears again as soon as no reason is left.
  • Personalized goods: They do not trigger the notice.
  • Check in the shop: The shop decides before it knows which wallets the device offers. The notice therefore also appears where the device would not offer a wallet at all.
  • Cart changed later: If the cart only needs a check after the button has loaded, the shop rejects the payment before charging and shows the notice at the top of the cart page.
  • Other express buttons: Amazon Pay and PayPal Checkout remain because they lead back to the order review.

No button and no notice

In these cases, the place of the Stripe button stays empty:

  • Module: “Payment by Stripe” is off, no “Public key” is entered, or “Allow Stripe checkout (express purchase)” is off.
  • Shipping and Payment: Stripe is not enabled for “FREE SHIPPING!” or not for the shipping method chosen in the cart (without a choice, the cheapest one).
  • Payment method not allowed: Stripe is not allowed as a payment method for the customer group or the individual customer.
  • Minimum order: The “Minimum order” under Settings → General → Minimum values is not reached.
  • Stock: “Check the stock” under Settings → Checkout → Inventory is switched on, and an item is not available.
  • Attributes: An attribute combination in the cart cannot be ordered.
  • Amount: The cart total is 0.
  • Device: Stripe offers none of the enabled payment methods on the device.

Legal text at the button

Because the customer does not see the order review on the express path, a short legal text with links appears below the Stripe button. from 4.10.0

With both switches on, it reads:

Legal text in the shop: “By confirming in the payment window, you place an order with an obligation to pay. Our terms and conditions and the cancellation policy apply. Information on data protection can be found in our privacy policy.”

Which parts it names follows from two switches under Settings → Checkout → General. The sentence on the obligation to pay and the link to the privacy policy are always there.

“GTC in the order process on/off” “Right of withdrawal in the order process on/off” The notice links to
on (default) on (default) terms and conditions, cancellation policy and privacy policy
on off terms and conditions and privacy policy
off on cancellation policy and privacy policy
off off only the privacy policy

Where the links lead

  • Terms and conditions: to the “Alternative Terms of Service PDF file” if it is in the files/ folder, otherwise to the CMS page of your terms, by default “General Terms and Conditions”.
  • Cancellation policy: to the “Alternative revocation PDF file”, otherwise to the CMS page “Right of revocation”.
  • Privacy policy: always to the CMS page “Privacy”.

These are the same targets as in the order review, and all links open in a new tab. You set the two PDF files under Settings → General → Basic settings.

  • Visibility: The legal text only appears once Stripe offers at least one payment method on the device. Where the notice about the required check replaces the button, the legal text is missing.
  • Your own wording: Under Tools → xoLanguage, you can override the text with your own value (TEXT_EXPRESS_CHECKOUT_LEGAL_HINT and the variants with _TERMS, _WITHDRAWAL and _PRIVACY). The placeholders %1$s (terms), %2$s (cancellation policy) and %3$s (privacy policy) stand for the links and must be kept. Check the legal text below the button after every change: if a placeholder is missing, the matching link is missing, and swapped placeholders link to the wrong pages. Write a percent sign as %%; a single % can hide or garble the legal text.
No legal advice: Besides the shipping methods, the payment window of the wallet only shows the shop name and the total, no individual items. Please clarify with your legal advisor whether this, together with the legal text, is sufficient for your shop, for example for the obligations under Section 312j BGB.

Customer data from the wallet

If the customer is not signed in, the shop takes the email address and the delivery address from the wallet. Signed-in customers keep the email address and the billing address of their account; only the delivery address comes from the wallet.

Signed-in customers

They order in their customer account. The address from the wallet is added to their address book as the delivery address; the billing address of the account stays.

Not signed in

Express checkout never signs in to an existing customer account. A guest record is created, even if the email address belongs to an account. Customers who want to order in their account sign in before paying.

  • Customer account instead of guest: If “Obligation to register during the ordering process” under Settings → Checkout → Customer details is set to always_account or always_account_and_guest_checkbox, express checkout creates a customer account and sends the access data by email. This only applies if no customer account exists for the email address yet.
  • Telephone number: The wallet only asks for it if “Telephone number is required field” under Settings → Checkout → Customer details is set to mandatory.

Shipping method and amount in the wallet

In the payment window, the customer chooses the delivery address and the shipping method. The shop calculates the amount itself.

  • Shipping methods: When the customer chooses an address in the wallet, the shop calculates its shipping methods. If the customer is not signed in, it uses the postcode, city and country of this address; for signed-in customers, it uses the delivery address from the customer account. Only the shipping methods for which Stripe is enabled under “Shipping and Payment” are offered; the wallet shows the name and the price.
  • Preselection: The shipping method from the cart is preselected, otherwise the first one in the order of your shipping modules.
  • Amount: The shop calculates as it does for the booking, with shipping, surcharges, discounts, fees and taxes. It recalculates with every change of shipping method.
  • No suitable shipping method: If there is no shipping method for the address or the total cannot be calculated, the wallet rejects the address. The message comes from the wallet, not from the shop.

Reconciliation after booking

After creating the order, the shop compares the amount collected with the order. If the payment does not cover the order, it gets the status from “Order Status (Paid Asynchronously)” or, without this setting, your default status instead of the status from “Order Status (Paid Immediately)”, plus an internal note.

If the amount differs by more than 1 cent or the order contains no items, the shop also sends you an email, see operator email. from 4.10.0

Pickup

  • Choosing a branch: If “Location selection” in the module “Pick up” (Click & Collect) is set to required, the wallet does not offer pickup until the customer has chosen a branch in the shop beforehand. from 4.10.0
  • Payment methods of the branch: If a branch has its own payment methods without Stripe, pickup is not offered in the wallet either.

You set up shipping methods under Settings → Checkout → Shipping methods; see the guide Shipping & Delivery.


Unclear payment status: protection against paying twice

If the shop cannot confirm a wallet payment as paid right away, it does not create the order immediately and accepts no second Stripe payment in this session. from 4.10.0

The payment status is unclear in these cases:

  • Stripe reports the payment as processing or only as authorized.
  • The status cannot be checked right now, for example due to a network problem or a disruption at Stripe.
  • The order completion fails after the money has already been collected.
  • Money was collected for the payment without an order being created, for example after a redirect to PayPal or Amazon Pay or when the tab was closed.

What the customer sees

If the payment breaks off in the payment window, the customer lands on the cart page. One of these messages appears at the top:

Situation Message in the cart
Payment on its way “We have received your payment, but it could not yet be matched to this order automatically. Please do not pay again – you would otherwise be charged a second time. Please get in touch with us and we will complete your order manually.”
Status cannot be checked “We could not verify the status of your payment just now. As a precaution, please do not pay again and get in touch with us – we will check the transaction and complete your order.”
Not paid “The payment could not be completed. Please select your payment method again.”
Order exists “We have already received your order for this payment, so your shopping cart is now empty. Please do not pay again.” The shop empties the unchanged cart for this and shows the message once.

After a redirect to PayPal or Amazon Pay, the customer does not return to the cart page. Signed-in customers see the matching message on the “Payment Information” page; guests land on the login page without a message. For them, the message appears as soon as they want to pay with Stripe again.

How the block works

  • No second Stripe payment: The shop rejects a new express attempt before charging. The regular checkout with Stripe leads back to the cart with the message instead of to the payment page of Stripe.
  • Checked payment: If an express payment is paid and checked but not yet booked, a new attempt leads directly to the order completion instead of a second payment.
  • End of the block: The block ends when Stripe reports the payment as not paid, when an order exists for the payment, or after 24 hours at the latest.
  • Scope: The block applies to Stripe in the customer’s session. It does not block other payment methods or other devices.
When a customer gets in touch: Check in the Stripe Dashboard whether the payment has arrived. If it has, the restoration creates the order as soon as the waiting time has passed and the next webhook from Stripe arrives. You can see whether it is already there under Orders → Orders. Do not create an order manually; if you have already created one, cancel the one you created manually, not the restored one.

Restored orders

If the customer does not return to the shop after a successful payment, the shop creates the order by itself. For this, it needs the Stripe webhook.

  1. Message: Stripe reports a successful payment for which the shop has no order. The shop stores the message.
  2. Waiting time: The order is created no earlier than after the time set in “Order restoration - delay (minutes)”. The default is 30 minutes; 5 to 180 are allowed. The waiting time prevents a duplicate order if the customer returns right away.
  3. Trigger: The shop processes stored messages when the next webhook from Stripe arrives. In quiet periods, this can therefore take considerably longer than the waiting time you set.
  4. Order: The basis is the cart snapshot. When the customer pays, the shop stores the content and totals of the cart in it.

A later payment confirmation from Stripe only sets a Stripe order to the status from “Order Status (Paid Immediately)” if Stripe confirms the charge and the amount covers the booked total. An underpaid order keeps its status.

What you see in the order

  • Internal note: Every restored order carries a note in its history that the customer does not see. It begins with “Diese Bestellung wurde automatisch vom XONIC Shopsystem restauriert” (displayed in German) and asks you to check the order for accuracy and duplicates before you send the customer an order confirmation.
  • No order confirmation: The restoration does not send the customer an order confirmation, so they have not received anything from the shop yet. After your check, send it promptly yourself.

What you do

  1. Compare: For orders with a note, compare the amount, items, refund and dispute with the payment in the Stripe Dashboard.
  2. Check for duplicates: If a regular order already exists for the same cart, check in the Stripe Dashboard whether two payments have arrived. Only then is the restored one a duplicate. Set it to a cancellation status; with “Automatic chargeback” switched on in the Stripe module, the shop refunds its payment.
  3. Complete: Add missing items in the order editor, see Process orders.
  4. Finish: Only then set the status and send the order confirmation: in the order editor, switch on “New order confirmation?” and click “Update”.
Operator email: If the amount collected and the order do not match, the shop writes the note “Warning, the booking differs from the payment: …” in the default language of the shop. In addition, the email “Payment does not match order (Stripe): order …” is sent once per payment to the addresses under “Infomail Supporttickets” (Settings → General → Tickets & Tasks). Without a valid address there, no email is sent. The default from the installation is only a placeholder. from 4.10.0
Without email: Where the shop sends no email, the reason is only in the internal note in the order history. For a payment that is still processing, there is neither a note nor an email. To find orders that do not count as paid, create a status of your own under Orders → Order status, for example “Check payment”, and select it in the Stripe module under “Order Status (Paid Asynchronously)”. Under Orders → Orders, you then filter by this status. Stripe orders whose payment is still processing also get this status.

Switch-over to the Express Checkout Element

From XONIC 4.10.0, Stripe express checkout always uses the Express Checkout Element from Stripe. The setting “Express Checkout Implementation” is dropped.

  • What is dropped: The setting chose between legacy, the older Payment Request Button from Stripe, and new, the Express Checkout Element.
  • What the update does: It sets the setting to new by itself, also where individual domains in a multishop have their own value. You do not need to change anything in the setting itself.
  • Shops with legacy: They show the Express Checkout Element after the update, as do older installations without this setting. Depending on the selection in the Stripe module, Link, PayPal and Amazon Pay appear in addition to Apple Pay and Google Pay.
  • PayPal and Amazon Pay: If your shop ran with legacy and the table “methods of payment” has a row with “PayPal”, “AmazonPay” or “All payment methods”, for example for the payment page of Stripe, these payment methods appear in the express button for the first time after the update. There is no separate selection just for the express button. Test these payment methods after the update, see Pitfalls.
  • Custom templates: They need no adjustment.
After the update: Take a look at the express button in the cart once. Which payment methods appear is controlled by the selection in the Stripe module and the active payment methods in your Stripe account. For Apple Pay, your domain must still be registered with Stripe.

The settings at a glance

You find the switches of the module “Stripe” under Settings → Checkout → Payment methods, the others in the places named.

Payment by Stripe
MODULE_PAYMENT_STRIPE_STATUS
Switches on the module. Without the module, there is no express button.
Public key
MODULE_PAYMENT_STRIPE_PUBLIC_KEY
From your Stripe account. Without it, no button appears.
secret key
MODULE_PAYMENT_STRIPE_SECRET_KEY
From your Stripe account. The shop uses it to create the webhook endpoint when you save.
Table “methods of payment”
MODULE_PAYMENT_STRIPE_PAYMENTS
Defines the Stripe payment methods in the regular checkout and in the express button, see Setup. Default: “Credit cards, ApplePay, GooglePay”.
Allow Stripe checkout (express purchase)
MODULE_PAYMENT_STRIPE_EXPRESS_CHECKOUT
Express button in the off-canvas cart, in the cart and on the login page. Default: on.
Webhook Secret
MODULE_PAYMENT_STRIPE_WEBHOOK_SECRET
The shop uses it to verify the signature of the messages from Stripe. When it creates the webhook endpoint anew, it enters the secret by itself.
Order restoration - delay (minutes)
MODULE_PAYMENT_STRIPE_RESTORE_DELAY_MINUTES
Waiting time until the restoration. Default 30, allowed 5 to 180.
Order Status (Paid Immediately)
MODULE_PAYMENT_STRIPE_ORDER_STATUS_ID
Status of confirmed payments. Default: “Receipt of payment”.
Order Status (Paid Asynchronously)
MODULE_PAYMENT_STRIPE_ORDER_STATUS_ID_ASYNC
Status while a payment does not count as paid. Without a value, your default status applies. A status of your own makes these orders easy to find, see Restoration.
Automatic chargeback
MODULE_PAYMENT_STRIPE_AUTO_REFUND
Refunds the payment of a Stripe order as soon as you set it to a cancellation status. Default: on.
Telephone number is required field
REQUIRED_FIELD_TELEPHONE
Under Settings → Checkout → Customer details. Only with mandatory does the wallet ask for the telephone number.
Obligation to register during the ordering process
ACCOUNT_MODE
Under Settings → Checkout → Customer details. With always_account or always_account_and_guest_checkbox, express checkout creates a customer account.
GTC in the order process on/off
DISPLAY_CONDITIONS_ON_CHECKOUT
Under Settings → Checkout → General. Controls the terms part of the legal text. Default: on.
Right of withdrawal in the order process on/off
DISPLAY_WITHDRAWAL_ON_CHECKOUT
Under Settings → Checkout → General. Controls the withdrawal part of the legal text and counts for the notice on services and downloads. Default: on.
Exclusion from the right of revocation for digital goods and services
CONFIRM_VIRTUAL_WITHDRAWAL
Under Settings → Checkout → General. Counts for the notice on services and downloads. Default: on.
Enable download of products
DOWNLOAD_ENABLED
Under Settings → Checkout → Download. Counts for the notice on downloads. Default: off.
Infomail Supporttickets
SUPPORT_EMAILS_TO
Under Settings → General → Tickets & Tasks. Recipients of the operator email when the booking differs. from 4.10.0
Location selection
MODULE_SHIPPING_PICKUP_LOCATION_SELECTION
Under Settings → Checkout → Shipping methods in the module “Pick up”. With required, the wallet only offers pickup once the customer has chosen a branch. from 4.10.0

Pitfalls

What to watch out for

  1. No button despite an active module: Stripe is not enabled under “Shipping and Payment” for “FREE SHIPPING!” or for the shipping method chosen in the cart. A typical case is “Pick up”: by default, only “Cash Payment” is enabled for it.
  2. Apple Pay is missing: The domain is not registered with Stripe, or the browser and device do not support Apple Pay.
  3. Notice for an ordinary cart: An item is marked as a service, as B-stock goods or with “FSK 18” by mistake, or it carries a purchase download or a required upload.
  4. Shipping method missing in the wallet: Stripe is not enabled for this shipping method under “Shipping and Payment”.
  5. Order appears late or not at all: The restoration only runs with the next webhook after the waiting time. Check the webhook in the health check.
  6. Test keys in the live shop: The Stripe module has only one pair of keys. As long as the test keys are entered, real customers cannot pay with Stripe, and when you save, the shop takes over the “Webhook Secret” of test mode. After switching back to the live keys, it therefore rejects all messages from Stripe without the health check reporting it. Remedy: clear “Webhook Secret”, save and choose “Re-create endpoint + capture secret” in the health check.
  7. No operator email: There is no valid address under “Infomail Supporttickets”.
  8. Second payment without an order: If the restoration finds a Stripe order of the same customer for the same amount shortly before or after the payment, it does not create a second one. If the customer really paid twice, the second payment has no order. So reconcile your Stripe payments with the orders regularly.
  9. PayPal and Amazon Pay via Stripe: Both redirect to the provider. The order is then probably only created through the restoration, that is after the waiting time. After the return, signed-in customers see the message “We have received your payment …”, and guests land on the login page. Check the process with a test payment before you select these payment methods in the Stripe module or, if they are already selected, right after the update.
  10. Klarna in the express button: If Klarna is active in your Stripe account, Stripe can show it in the express button, even if the table “methods of payment” does not list Klarna.

Checklist: set up and test express checkout

  • Check the version – under Tools → xoUpdate, top right after “Shop:”. The notice instead of the button, the legal text and the lock for an unclear payment status are available from XONIC 4.10.0.
  • Set up the module – “Payment by Stripe”, both keys, payment methods and “Allow Stripe checkout (express purchase)”.
  • Enable shipping methods – in the “Shipping and Payment” tab, including “FREE SHIPPING!”, without shipping methods whose costs are determined after the order.
  • Register the domain – in the Stripe Dashboard, also with www.
  • Check the webhook – the health check reports nothing about Stripe. However, it does not detect a wrong “Webhook Secret”.
  • Enter the info email – a valid address under “Infomail Supporttickets”.
  • Test purchase – with the test keys from Stripe only in a test installation, never in the live shop, see Pitfalls. In the live shop, test with a real payment that you refund afterwards. The amount in the wallet equals the order total, also after changing the shipping method, and the order has the status from “Order Status (Paid Immediately)”, by default “Receipt of payment”.
  • Test the notice – a cart with an item marked as B-stock goods shows the notice instead of the button; then delete the test data.

Frequently asked questions

Why does the cart show a notice instead of the express button?

The cart needs a step that only the regular checkout has: consent for services and digital content (with the withdrawal switches on) or for B-stock goods, a required file or a customer account for downloads. For items with “FSK 18”, the notice also appears because the express path has no age verification. The customer then orders via the regular checkout. The notice is available from XONIC 4.10.0.

Why does no express button appear at all?

Usually Stripe is not enabled in the “Shipping and Payment” tab for “FREE SHIPPING!” or for the shipping method chosen in the cart, or “Allow Stripe checkout (express purchase)” is off. Other reasons are a minimum order that is not reached, an item that is not available or a payment method that is not allowed for the customer group. Stripe also decides for each device and browser whether a wallet button appears.

Which shipping methods does the wallet offer?

The shipping methods for which Stripe is enabled under “Shipping and Payment” and which the shop calculates for the address: for customers who are not signed in, for the postcode, city and country from the wallet; for signed-in customers, for the delivery address from the customer account. The shipping method from the cart is preselected, otherwise the first one in the order of your shipping modules.

What happens if the customer pays but does not return to the shop?

The shop creates the order by itself, no earlier than after “Order restoration - delay (minutes)” and as soon as the next webhook from Stripe arrives. Every restored order carries an internal note to check it before the order confirmation. The customer only receives an order confirmation once you send it.

Why does an express order not count as paid?

The amount collected does not cover the order, or the payment is still processing. Except for a payment that is still processing, an internal note in the order history names the reason. Compare the order with the payment in the Stripe Dashboard.

Why was the order created as a guest although the customer has an account?

Express checkout never signs in to an existing customer account. If the email address belongs to an account, a guest record is created. Customers who want to order in their account sign in before paying.

Can a customer accidentally pay twice?

As long as the payment status is unclear, the shop accepts no second Stripe payment in this session and asks the customer not to pay again. This does not block other payment methods or other devices. This lock is available from XONIC 4.10.0.

Do I need to change anything after the update?

Not in the setting: “Express Checkout Implementation” is dropped from XONIC 4.10.0, and the update switches it over by itself. If your shop ran with legacy and “PayPal”, “AmazonPay” or “All payment methods” is selected in the Stripe module, these payment methods then appear in the express button for the first time. Test them after the update and take a look at the express button in the cart once.

Is the legal text at the button legally sufficient?

This guide cannot judge that. From XONIC 4.10.0, the shop shows the legal text according to your switches for terms and withdrawal, and the payment window of the wallet only shows the shop name and the total. Please clarify with your legal advisor whether this is sufficient for your shop.

Further guides

We set up express checkout with you

We support you with the Stripe module, shipping methods, domain registration and checking restored orders.

Contact support now