checkout-architecture

Checkout Components Skill

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "checkout-architecture" with this command: npx skills add saleor/storefront/saleor-storefront-checkout-architecture

Checkout Components Skill

Quick reference for reusable checkout components extracted during the architecture refactor.

Component Locations

src/checkout/components/ ├── contact/ # Authentication & user display ├── shipping-address/ # Address selection & display ├── payment/ # Payment method & billing └── AddressForm/ # Form utilities (existing)

Contact Components

import { SignInForm, // Email + password + forgot password SignedInUser, // Logged-in user display with sign out ResetPasswordForm, // New password form (reset callback) GuestContact, // Email input + create account checkbox } from "@/checkout/components/contact";

Component Props Use Case

SignInForm

initialEmail? , channelSlug , onSuccess , onGuestCheckout

Sign-in form

SignedInUser

user , onSignOut

Show logged-in user info

ResetPasswordForm

onSuccess , onBackToSignIn

Password reset callback

GuestContact

email , onEmailChange , emailError? , onSignInClick

Guest email entry

Address Components

import { AddressSelector, // Radio list for saved addresses AddressDisplay, // Read-only address card } from "@/checkout/components/shipping-address";

// Also re-exported from AddressFormFields: import { AddressFields, FormInput, FormSelect, FieldError } from "@/checkout/components/shipping-address";

Component Props Use Case

AddressSelector

addresses , selectedAddressId , onSelectAddress , defaultAddressId? , name?

Pick from saved addresses

AddressDisplay

address , title? , onEdit?

Show address read-only

AddressFields

orderedFields , formData , errors , onFieldChange , etc. Dynamic country-aware fields

Payment Components

import { PaymentMethodSelector, // Card/PayPal/iDEAL tabs BillingAddressSection, // Same-as-shipping toggle + form isCardDataValid, // Helper function type PaymentMethodType, // "card" | "paypal" | "ideal" type CardData, // { cardNumber, expiry, cvc, nameOnCard } type BillingAddressData, // { countryCode, formData, selectedAddressId? } } from "@/checkout/components/payment";

Component Props Use Case

PaymentMethodSelector

value , onChange , cardData? , onCardDataChange?

Payment method picker

BillingAddressSection

billingAddress? , shippingAddress? , userAddresses? , isShippingRequired? , errors? , onChange

Billing with same-as-shipping

Usage Pattern

Steps import and compose these components:

// In InformationStep.tsx import { SignInForm, SignedInUser, GuestContact } from "@/checkout/components/contact"; import { AddressSelector } from "@/checkout/components/shipping-address";

// Orchestrate based on auth state { authenticated ? ( <SignedInUser user={user} onSignOut={handleSignOut} /> ) : contactSection === "signIn" ? ( <SignInForm onSuccess={handleSignInSuccess} /> ) : ( <GuestContact email={email} onEmailChange={setEmail} /> ); }

When to Create New Components

Extract into components/ when:

  • Used in 2+ places

  • Self-contained with clear props interface

  • 100+ lines that can be isolated

Keep inline when:

  • One-off UI specific to that step

  • Tightly coupled to step's state machine

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

caching-strategy

No summary provided by upstream source.

Repository SourceNeeds Review
General

react-patterns

No summary provided by upstream source.

Repository SourceNeeds Review
General

ui-components

No summary provided by upstream source.

Repository SourceNeeds Review
General

checkout-management

No summary provided by upstream source.

Repository SourceNeeds Review