Checkout Process
BookWish's checkout process guides you through three simple steps to complete your purchase.
Starting Checkout
From Cart Page
- Review items in your cart
- Check the total amount
- Tap the Checkout button
- Navigate to checkout page
Prerequisites
Before checkout:
- ✅ At least one item in cart
- ✅ Valid BookWish account (not guest)
- ✅ Internet connection
Checkout Steps
The checkout uses a stepper interface with three stages:
Step Navigation
Moving Forward:
- Complete current step requirements
- Tap Continue button at bottom
- Advances to next step
Moving Backward:
- Tap Cancel button
- Returns to previous step
- On first step, returns to cart
Visual Indicators:
- Current step highlighted
- Completed steps marked
- Future steps grayed out
Step 1: Fulfillment
Choose how you want to receive your order.
Fulfillment Options
Ship to Me:
- Books delivered to your address
- Standard delivery: 5-7 business days
- Shipping costs apply
- Available for all orders
Store Pickup:
- Pick up at your home store
- Available when ready (varies by order)
- No shipping costs
- Only available if cart items include
storeId
Store pickup only appears if your cart items are from a store. BookWish Direct orders ship only.
Selection
Default: "Ship to me" is pre-selected
To Choose:
- Review available options
- Tap the radio button for your choice
- Read the subtitle for details
- Tap Continue when decided
Validation
- At least one option must be selected
- Store pickup hidden if not applicable
- Selection saved in checkout state
Step 2: Address
Provide or select your shipping address.
For Ship Orders
If Shipping Address Selected:
Shows address card with:
- Name - Address label/name
- Street Address - Line 1 and Line 2 (if present)
- City, State, ZIP - Full location
- Phone - Contact number (if provided)
- Change button - Update address
If No Address Selected:
Shows:
- Button: "Select shipping address"
- Opens address selection dialog
Address Selection Dialog
The dialog displays:
- Your saved shipping addresses
- Default address highlighted (if set)
- Option to add new address
- Cancel and select actions
To Select:
- Tap on an address
- Dialog closes
- Address appears in checkout
To Add New:
- Tap "Add Address" button
- Complete address form
- Save and select
See Managing Addresses for details on address management.
For Pickup Orders
If you selected store pickup:
- No address section shown
- Caption: "No shipping address needed for store pickup"
- Automatically proceeds when you continue
Validation
Before advancing:
- ✅ If shipping: Address must be selected
- ✅ If pickup: No address required
- ❌ Error message if shipping but no address
Step 3: Payment & Review
Review your order and complete payment.
Order Summary
The summary displays all cost breakdowns:
Line Items:
- Subtotal - Total of all item prices
- Tax - Calculated sales tax
- Shipping - Delivery cost (if shipping)
Total:
- Grand Total - Bold, emphasized
- All amounts in USD with 2 decimal places
Display Format:
Subtotal $XX.XX
Tax $X.XX
Shipping $X.XX (if applicable)
─────────────────────────
Total $XX.XX
Payment Information
Current Payment Flow:
The checkout currently uses Stripe for payment processing:
- Payment method configured through Stripe
- Secure payment processing
- PCI-compliant handling
The exact payment UI in the checkout step may vary based on Stripe integration configuration. Look for payment method selection or entry fields in this step.
Trade Credits
If you have trade credits available:
- May be applied during checkout
- Reduces total amount due
tradeCreditAppliedCentstracked in order
Place Order
Place Order Button:
- Located at bottom of payment step
- Enabled when: Address selected (if shipping) and ready
- Disabled when: Missing required information
To Complete Purchase:
- Review all order details
- Verify payment information
- Tap Place Order
- Wait for processing
Processing
While order is being placed:
- Button may show loading indicator
- Don't close the app
- Don't press back button
- Network request in progress
What Happens:
- Order submitted to backend
- Payment processed via Stripe
- Order created in database
- Inventory reserved/updated
- Confirmation generated
Order Confirmation
Successful Order
On successful checkout:
You'll See:
- Success message: "Order placed successfully"
- Automatic navigation to order details page
- Order number and information
What's Created:
- Order record with unique ID and order number
- Order items for each cart item
- Payment intent via Stripe
- Email confirmation (if enabled)
Cart State:
- Cart automatically cleared
- Items removed
- Ready for next order
Analytics Tracking
A purchase event is logged:
- Order ID
- Total amount
- Store ID (if applicable)
- BookWish Direct flag
Order Details Page
Navigate to: /orders/[orderId]
Shows:
- Order number
- Order status
- Items ordered
- Fulfillment information
- Tracking (when available)
See Order Tracking for details.
Error Handling
Common Errors
Inventory Issues:
- "Item no longer available"
- Book went out of stock during checkout
- Remove unavailable item to proceed
Payment Failures:
- "Payment failed"
- Card declined or payment issue
- Update payment method and retry
Network Errors:
- "Network connection lost"
- Poor connectivity
- Retry when connection restored
Address Issues:
- "Invalid shipping address"
- Address validation failed
- Correct address information
Error Display
Errors shown as:
- SnackBar notification at bottom
- Error message text
- Automatic dismissal or manual close
Recovery
If checkout fails:
- Cart items preserved
- Can retry checkout
- No duplicate orders created
- Cart state maintained
Browser the Cat
During checkout, Browser may appear with hints:
Pre-Purchase Hint:
- Appears after page loads (500ms delay)
- Message: "Your order will be fulfilled by your home store. They'll let you know when it's ready!"
- Shows only once (tracked by
BrowserHints.prePurchaseHint) - Context: Confirmation
- Animation: Speaking
Provides reassurance about the order process.
Checkout State
State Management
State Tracking:
- Current step number (0-2)
- Selected fulfillment type
- Selected address
- Processing status
Methods:
_onStepContinue() // Advance to next step
_onStepCancel() // Go back or exit
_placeOrder() // Submit the order
Validation Logic
Each step validates before advancing:
- Step 0: Fulfillment type selected
- Step 1: Address if shipping
- Step 2: Payment ready and order valid
Security
Payment Security
- PCI Compliance - Stripe handles card data
- Encrypted transmission - HTTPS for all requests
- No card storage - BookWish doesn't store full card details
- Tokenization - Secure payment tokens used
Address Privacy
- Addresses stored securely
- Only shared with fulfillment provider
- Not visible to other users
Order Privacy
- Orders private to your account
- Stores only see their orders
- BookWish staff has limited access for support
Tips for Smooth Checkout
- Save addresses beforehand - Add shipping addresses in Settings before checkout
- Check cart carefully - Review items and quantities before starting
- Use good connection - Stable internet prevents errors
- Don't refresh - Let the process complete
- Save payment methods - Use saved methods for faster checkout
- Review summaries - Check totals before placing order
Common Questions
Q: Can I edit my order after placing it? A: No, contact the store or support to request changes. Order modifications aren't available in-app.
Q: How long does checkout take? A: Usually 1-2 minutes. Payment processing takes a few seconds.
Q: Can I use multiple payment methods? A: Currently, one payment method per order. Trade credits may supplement.
Q: What if I close the app during checkout? A: Your cart is preserved. Resume checkout when you return.
Q: Are there fees besides the book prices? A: Tax and shipping (if applicable) are the only additional charges shown in checkout.
Q: Can I schedule delivery? A: Not currently. Standard delivery timing applies based on fulfillment method.
Related Topics
- Order Tracking - After your order is placed
- Your Home Store - How your store fulfills orders
- BookWish Direct - Direct fulfillment option
- Shipping Addresses - Managing your addresses