Skip to main content

Automatic Checkout

Automatic Checkout is a feature that enables direct purchase links, automatically taking users to the payment process when they visit a product or subscription page.

How It Works

When a user accesses a URL with automatic checkout parameters:

  1. If they do NOT have access to the content: The system clears the cart, adds the product, and automatically opens the checkout modal
  2. If they ALREADY have access (issue/product): They are redirected directly to the reader, preserving the parameters
  3. If they ALREADY have an active subscription: They are redirected to the library with an informative message
  4. If they are NOT authenticated: They are redirected to login, preserving the purchase intent

Content Type Compatibility

Automatic checkout only activates for carts that contain digital content exclusively:

  • EPUBs - Electronic publications
  • PDFs - Portable document format files
  • Audio - Audiobooks and audio content

Physical Products

When the cart contains physical products, automatic checkout does not activate. Physical products require shipping information that cannot be collected in an automated flow, so users must explicitly initiate checkout.

Mixed Cart Behavior

If a cart contains both digital and physical products, the system treats it as a physical cart and disables automatic checkout to ensure proper collection of shipping details.

info

For unauthenticated users, the automatically_open_checkout=true parameter is only preserved through the login redirect when the cart has no physical products.

Query Parameters

automatically_open_checkout (required)

Activates the automatic checkout flow.

Accepted values:

  • true - Activates automatic checkout
  • false - Deactivates automatic checkout (displays the normal product page)
info

If this parameter is not present or is false, the normal page displays without auto-checkout.

currency (optional)

Specifies the currency for checkout.

Format: 3-letter ISO code in uppercase (USD, EUR, ARS, etc.)

Behavior:

  • If the specified currency is available for the product/plan, that currency is used
  • If unavailable, the system uses the tenant's primary currency
  • Validated against the tenant's configured currencies

coupon (optional)

Discount coupon code to apply at checkout.

Format: String (example: SAVE20, SUMMER2024)

Behavior:

  • The coupon is passed to checkout
  • Coupon validation occurs in the checkout component
  • If the coupon is invalid, checkout continues without discount

interval (subscriptions only)

Specifies the billing interval for subscription plans.

Accepted values:

  • month - Monthly billing
  • annual - Annual billing

Behavior:

  • If the specified interval is available for the plan, that interval is used
  • If unavailable, the plan's default interval is used
  • Only applies to recurring plans (subscriptions)

URLs and Examples

For Issues/Products (One-time purchase)

Base path: https://your-domain.com/library/publication/{slug}

URL Format: Publications use a slug (e.g., summer-magazine-2024-123)

Example 1: Basic automatic checkout

https://your-domain.com/library/publication/summer-magazine-2024-123?automatically_open_checkout=true

Example 2: With specific currency

https://your-domain.com/library/publication/summer-magazine-2024-123?automatically_open_checkout=true&currency=USD

Example 3: With currency and coupon

https://your-domain.com/library/publication/summer-magazine-2024-123?automatically_open_checkout=true&currency=EUR&coupon=SAVE20

Example 4: Without auto-checkout (normal page)

https://your-domain.com/library/publication/summer-magazine-2024-123?automatically_open_checkout=false

For Subscriptions (Recurring plans)

Base path: https://your-domain.com/subscribe/{plan-id}

Private Plans

If the plan is private, the URL must be signed (signed URL). Public plans do not require signing.

Example 1: Basic automatic checkout

https://your-domain.com/subscribe/16267?automatically_open_checkout=true

Example 2: With interval and currency

https://your-domain.com/subscribe/16267?automatically_open_checkout=true&interval=annual&currency=USD

Example 3: Monthly plan with coupon

https://your-domain.com/subscribe/16267?automatically_open_checkout=true&interval=month&currency=EUR&coupon=WELCOME50

Example 4: Annual plan with all options

https://your-domain.com/subscribe/16267?automatically_open_checkout=true&interval=annual&currency=USD&coupon=EARLYBIRD

User Flows

Flow 1: Authenticated user WITHOUT access

  1. User accesses: /library/publication/summer-magazine-2024-123?automatically_open_checkout=true&currency=USD
  2. System clears current cart
  3. System adds issue to cart
  4. User is redirected to: /cart/checkout?automatically_open_checkout=true&currency=USD
  5. Checkout modal opens automatically
  6. User completes payment

Flow 2: Authenticated user WITH access (issue)

  1. User accesses: /library/publication/summer-magazine-2024-123?automatically_open_checkout=true&currency=USD
  2. System detects user already has access
  3. User is redirected to the reader

Flow 3: NON-authenticated user

  1. User accesses: /library/publication/summer-magazine-2024-123?automatically_open_checkout=true&currency=USD
  2. System detects user is not authenticated
  3. User is redirected to: /auth/login?intended_url=...
  4. User authenticates
  5. User is redirected to checkout with product already in cart

Flow 4: User with active subscription

  1. User accesses: /subscribe/16267?automatically_open_checkout=true
  2. System detects active subscription
  3. User is redirected to: /library
  4. User sees message: "You already have an active subscription."

Validations and Behaviors

Currency Validation

User requests: currency=USD
Plan available in: USD, EUR, ARS
→ Result: Uses USD ✓

User requests: currency=MXN
Plan available in: USD, EUR, ARS
→ Result: Uses tenant's primary currency

Interval Validation (Subscriptions)

User requests: interval=annual
Plan has prices: monthly, annual
→ Result: Uses annual ✓

User requests: interval=annual
Plan only has: monthly
→ Result: Uses monthly (plan default)

User does not specify interval
Plan default_interval: annual
→ Result: Uses annual

Cart Clearing

important

Automatic checkout ALWAYS clears the cart before adding the product/plan.

This means:

  • Any products previously in the cart are removed
  • Only the product/plan from the URL will remain in the cart
  • This is a "direct purchase" flow without product combination

Use Cases

Scenario: Monthly newsletter promoting the latest edition

Buy the August edition now:
https://your-domain.com/library/publication/summer-magazine-2024-123?automatically_open_checkout=true&coupon=NEWS20

Benefits:

  • One click to purchase
  • Pre-applied coupon
  • Simple source tracking

2. Social Media Campaigns

Scenario: Instagram post promoting annual subscription

Annual subscription with 30% OFF!
https://your-domain.com/subscribe/16267?automatically_open_checkout=true&interval=annual&coupon=INSTA30

Benefits:

  • Pre-selected interval
  • Automatic discount
  • Fast conversion

3. Affiliates and Partners

Scenario: Affiliate link with specific currency

https://your-domain.com/library/publication/summer-magazine-2024-123?automatically_open_checkout=true&currency=EUR&coupon=PARTNER15

Benefits:

  • Affiliate's local currency
  • Commission tracked by coupon
  • Optimized experience

4. Landing Page

Scenario: Specific landing page with single CTA

<a
href="/subscribe/16267?automatically_open_checkout=true&interval=month&currency=USD"
>
Start your trial now!
</a>

Benefits:

  • Single action button
  • No additional steps
  • High conversion rate

5. Abandoned Cart Recovery

Scenario: Reminder email with specific product

Complete your purchase:
https://your-domain.com/library/publication/summer-magazine-2024-123?automatically_open_checkout=true&currency=USD

Benefits:

  • Returns directly to checkout
  • No need to search for product
  • Lower friction
X

Graph View