Skip to main content
Site Store Pro ships with four built-in payment processors — Test, Stripe, Paddle, and PayPal — and supports custom gateways starting at ID 100. The active processor is selected in Admin → Checkout → Processors and can be switched at any time without a deployment. This page covers processor configuration, sandbox vs. production toggling, randomize mode, and the two-step checkout flow.

Architecture

Site Store Pro uses a pluggable payment processor architecture. The active gateway is selected in Admin → Checkout → Processors (/admin/ecommerce/checkout/processors) and resolved at runtime. Built-in processors are always registered and fully verified — no file edits are needed to use them.
Custom gateways use IDs 100 and above. IDs 0–99 are reserved for built-in processors.

Built-in Processors


Sandbox vs. Production

Each processor row in the Admin panel includes a Production toggle. Switch the toggle at any time — no deployment required.

Processor Selection & Randomize Mode

The active processor for a given order is determined in the following order:
1

Randomize OFF

The primary_processor value from order_checkout_options is used directly.
2

Randomize ON

A processor is randomly selected from all non-zero configured slots (primary, secondary, and tertiary). Falls back to the primary processor if none of the slots are configured.
3

Fallback

If no configured processor is found, Test Processor (ID 0) is used automatically.
Use Randomize Mode for A/B testing payment providers or load-balancing across multiple merchant accounts.

Checkout Display Behavior

The checkout UI adapts automatically based on which processor is active:

Two-Step Checkout Flow

Site Store Pro uses a two-step approach that separates payment preparation from order placement, ensuring server-side verification before any order record is committed.
1

preparePayment() — Livewire Server Call

Scans the cart for subscription variants and routes to the correct gateway method (createPaymentIntent, createSubscription, or createTransaction).
2

Client-Side JS Initialization

Loads the processor’s JavaScript SDK inline:
  • Stripe → Stripe Elements (PaymentElement + optional AddressElement)
  • Paddle → Paddle.js inline checkout
  • PayPal → PayPal Smart Buttons in #paypal-button-container
3

placeOrder($gatewayToken) — Livewire Server Call

Verifies the payment server-side, records the authorization_code and transaction_id in order_payments, and places the order.
Orders are never created before server-side payment verification succeeds. The placeOrder() call is the authoritative commit point.

Next Steps

Stripe

Configure API keys, webhooks, and billing address settings for Stripe.

Paddle

Set up Paddle Billing with Price IDs and dynamic non-catalog pricing.

PayPal

Enable PayPal Smart Buttons — no Composer packages required.

Subscriptions

Configure recurring billing intervals, free trials, and mixed-cart rules.