Home / Blocks / E-commerce / Checkout Forms
6 blocks in this section

Shadcn Checkout Forms

Get shoppers through checkout without friction with layouts built on shadcn/ui, from a simple form to a single-page checkout and a guided multi-step flow.

How it works

Three steps to working code

Install a block and the files land in your repository. Nothing calls back to us.

  1. terminal

    $ npx shadcn@latest add @shadcnstore/checkout-form-1

    ✓ Checking registry

    ✓ Installing dependencies

    01

    Run one command

    Every preview above prints its own. The CLI writes the block and the components it needs into your project.

    Installation docs
  2. your project 3 files added

    components/

    ├─ ui/

    ├─ button.tsx

    └─ navigation-menu.tsx

    └─ checkout-form-1.tsx

    02

    Get real files

    React, TypeScript and Tailwind v4, with no framework imports. Next.js, Vite, Remix and Astro all work.

  3. checkout-form-1.tsx

    <Menu.Trigger

    - asChild

    + render={<button />}

    />

    03

    Edit it as your own

    Built on Base UI, not Radix, so keyboard and focus behaviour come from the primitive.

Blocks that hold state already carry the use client directive the Next.js App Router needs.

Guide

Checkout forms where the states are the work#

A checkout is the screen with the least tolerance for a rough edge. Every field that validates late, every button that can be double-clicked, every error that does not say what to fix costs a real order. They cover the layouts and, more importantly, the states around them.

The checkout blocks#

  • Checkout Form 1: the straightforward form with the essential fields. Free, and enough for a small shop with one shipping option.
  • Checkout Form 2: a single-page checkout with the order summary beside the fields, which is the fastest layout when the form is short.
  • Checkout Form 3: the guided multi-step version with a progress indicator and per-step validation.
  • Checkout Form 4: a checkout built around saved presets, for returning customers with stored addresses and cards.
  • Checkout Form 5: the order confirmation page, with a fulfilment timeline, line items and totals.
  • Checkout Form 6: the advanced input set. An async address combobox, delivery preference tags, a date range picker, phone entry with one-time-code verification and currency-formatted totals.

Single page or multi-step#

Single page wins whenever the form fits on one screen without scrolling past the summary, because every step transition is a place to abandon. Multi-step wins when address, delivery and payment each need real attention, or when the delivery options depend on the address and cannot be shown before it.

Whichever you pick, the order summary stays visible. A checkout that hides the total while asking for a card is asking somebody to trust a number they can no longer see.

Guest checkout and accounts#

The forms do not require an account, and that is deliberate. Forcing registration before purchase is one of the most reliably measured causes of abandonment. Offer the account after the order, when the person has an order number worth saving.

Address entry that does not fight the customer#

Checkout Form 6 uses an asynchronous combobox for the address, calling whatever lookup service you supply, with manual entry always available underneath. Autocomplete that cannot be escaped is worse than none, because there is always an address it does not know, and that customer still wants to buy.

The same block covers phone verification with a one-time code, a delivery date range and currency formatting that respects the locale rather than assuming a dollar sign.

Payments and where the risk sits#

None of these blocks takes a payment. They render the card fields, the disabled submit while a request is in flight and the declined state, and they hand off to your server. A front-end block that claimed to process a payment would be misdescribing where the risk and the compliance actually live.

What that leaves you is the part worth having: a form that behaves correctly while the network is slow, and error copy that names the fix rather than saying something went wrong.

Before and after the checkout#

A shopping cart comes immediately before, and the confirmation hands off to order history for a customer who wants to look it up later. Upstream, the product detail page is where the variant and quantity were chosen, and for a subscription the pricing table is what sets the expectation the checkout has to match.

FAQ

Checkout Forms questions, answered

What people ask before choosing a block from this collection.

Single page is faster for a short form and is what Checkout Form 2 does, with the order summary beside the fields. Checkout Form 3 is the guided multi-step version with a progress indicator, which reads better when address, delivery and payment each need real attention.
No. They are the interface, including validation, error states, the disabled submit while a request is in flight and the declined state. Connecting Stripe, Polar or any other processor is your server-side work, and no processor is baked into the markup.
Checkout Form 6 includes an asynchronous address combobox alongside delivery preference tags, a date range picker, phone entry with one-time-code verification and currency-formatted totals. The lookup calls whatever address service you supply.
Checkout Form 5 is an order confirmation page with a fulfilment timeline, line items and totals, and it hands off naturally to the order history screens.
Checkout Form 1, the straightforward form with essential fields, is free. The single-page, multi-step, preset, confirmation and advanced-input variants are Pro. See pricing.

Documentation

The components behind these blocks

How to install, customise and combine the shadcn/ui components this collection is built from.

Free & Premium Templates

Launch Faster with Complete Templates

Love these blocks? Get our free dashboard and landing page templates with 30+ pre-built pages and all the components you need. Premium templates with advanced features launching soon at $69.

Free Templates Now
30+ Pages Included
Premium Coming Soon