Skip to main content

Checkout Overview

Waffo Pancake uses a two-step checkout flow optimized for conversion. This design collects customer details first, then payment information, reducing abandonment and supporting accurate tax calculation.

Checkout URLs

Every product gets a permanent purchase link that never expires:
Test mode:
Just click “Copy Link” in the Dashboard. The link stays the same even when you update the product. A checkout session is created automatically when the customer opens the link. Add query parameters to pre-fill the checkout: Without discount_code, the product page shows a code entry field when the store has a coupon or promotion code that can be used on the product. See Code Entry Field.

Checkout Sessions (API)

For advanced use cases (dynamic pricing, custom metadata, programmatic checkout), create a session via the API:
Checkout sessions are generated server-side and lock the product version, pricing, and currency at creation time.

Two-Step Flow

Consumer Details

Collect email, country, and billing info for tax calculation and order processing.

Payment

Enter card details or use Apple Pay / Google Pay to complete payment.
Checkout page — Consumer details

Step 1: Consumer Details

Collects information needed for tax calculation and order processing. Required Fields: Conditional Fields (Based on Country): Business Purchase Option: Customers can toggle “I’m purchasing as a business” to provide:
  • Business name
  • Tax ID (for VAT/tax exemption)

Step 2: Payment

Checkout — Payment

Card Payment

  • Card number
  • Expiry date (MM/YY)
  • CVC/CVV
  • Cardholder name

Digital Wallets

  • Apple Pay (iOS, Safari)
  • Google Pay (Android, Chrome)
  • One-click with biometric auth
Order Summary is displayed alongside the payment form with product name, image, subtotal, tax, and total.

Session Lifecycle

  • One session, one order. A checkout session can produce exactly one order. Once the buyer submits, the session is consumed; opening the same checkoutUrl again shows “This checkout link has expired”. That is expected — call create-session again for every purchase instead of reusing links.
  • Browser back button. Before handing off to the payment provider, the cashier swaps the current history entry for a replacement session that the server derives from the original one, and the provider’s cancel URL points to the same address. Both ways back therefore land on a live session that keeps your orderMerchantExternalId and metadata — in any browser, because the values live in the session itself. The replacement session keeps the original session’s expiry (including any expiresInSeconds you set), so it expires together with the original session.
  • When the swap fails. If that swap fails, or the buyer comes back to a session that has already been consumed or has expired, what happens depends on how the checkout was opened. A session you created with create-session shows “This checkout link has expired” and is never re-created, so your orderMerchantExternalId, metadata and custom price are never silently dropped — create a new session for the buyer. A Product Purchase Link jumps back to the product page and creates a fresh session; parameters you put on the link (currency, email, success_url) are not carried over.

Subscription Checkout

For subscription products, additional billing information displays:

Customization

Make your checkout page match your brand through the Checkout Settings in your dashboard. Upload a custom logo displayed on the checkout page. Supported formats include PNG, JPG, and SVG.

Theme Mode

Light Mode

White background, dark text. Best for most brands.

Dark Mode

Dark background, light text. Modern aesthetic.
Switch between Light and Dark mode presets. Each mode maintains its own set of color values.

Color Settings

Border Radius

Control the roundness of UI elements with the checkoutBorderRadius setting. Default is 8px. Options range from 0px (sharp corners) to 16px (extra-large rounding).
Ensure sufficient contrast between text and background colors for accessibility. WCAG recommends a contrast ratio of at least 4.5:1.

Store Information


Multi-Language Support

The hosted checkout is multilingual and requires no merchant configuration:
  • Automatic detection — the checkout UI opens in the shopper’s browser language and falls back to English when the language isn’t supported yet.
  • Shopper choice — shoppers can switch languages at any time via the selector in the checkout footer.
  • Payment page follows — the payment page opens in the language the shopper was using when they clicked Pay (22 payment-page languages supported).
The checkout UI supports 13 languages:

Language priority

When checkout first opens, the UI language is resolved in this order — the first match wins:
Language is fully decoupled from currency — the shopper can switch to any of the 19 supported languages regardless of the order’s currency.

Processing & Results

After payment submission:
  1. Card validation — Luhn check, expiry, CVC verification
  2. 3D Secure — Bank verification (if required by the issuing bank)
  3. Authorization — Charge to card
  4. Order creation — Record in system
Success Page: Order confirmation number, receipt email notification, next steps, Customer Portal link. Failed Page: Clear error explanation, suggested action, retry button, support contact option.

Error Handling


Test Checkout

Use Test Mode to try the checkout flow without real charges.
Test mode is indicated by a banner: “Test Mode - No real charges will be made”

Merchant of Record Notice

At checkout footer, customers see:
“This order is processed by our online reseller & Merchant of Record, Waffo Pancake, who also handles order-related inquiries and returns.”
This disclosure is required for MoR compliance and helps customers understand the payment relationship.