Documentation Cleanup: ✅ Archived 6 obsolete/completed docs to archive/: - CUSTOMER_DATA_FLOW_ANALYSIS.md - CALCULATION_EFFICIENCY_AUDIT.md - PHASE_COMPLETE.md - PRODUCT_FORM_UX_IMPROVEMENTS.md - PROGRESS_NOTE.md - TASKS_SUMMARY.md New Documentation: ✅ CUSTOMER_SPA_MASTER_PLAN.md - Comprehensive strategy Includes: 1. Architecture Overview - Hybrid plugin architecture - customer-spa folder structure - Frontend/Backend separation 2. Deployment Modes - Shortcode Mode (default, works with any theme) - Full SPA Mode (maximum performance) - Hybrid Mode (best of both worlds) 3. Feature Scope - Phase 1: Core Commerce (MVP) - Phase 2: Enhanced Features - Phase 3: Advanced Features 4. UX Best Practices - Research-backed patterns (Baymard Institute) - Cart UX (drawer, mini cart, shipping threshold) - Checkout UX (progress, guest, autocomplete) - Product Page UX (images, CTA, social proof) 5. Technical Stack - React 18 + Vite - Zustand + React Query - TailwindCSS + shadcn/ui - PWA with Workbox 6. Implementation Roadmap - 10 sprints (20 weeks) - Foundation → Catalog → Cart → Account → Polish 7. API Requirements - 15+ new endpoints needed - Shop, Cart, Checkout, Account APIs 8. Performance Targets - Core Web Vitals - Bundle sizes - Load times 9. Settings & Configuration - Frontend mode selection - Feature toggles - Customization options 10. Migration Strategy - From WooCommerce default - Rollback plan - Success metrics Result: Clear, actionable plan for Customer SPA development!
11 KiB
Customer SPA Master Plan
WooNooW Frontend Architecture & Implementation Strategy
Version: 1.0
Date: November 21, 2025
Status: Planning Phase
Executive Summary
This document outlines the comprehensive strategy for building WooNooW's customer-facing SPA, including architecture decisions, deployment modes, UX best practices, and implementation roadmap.
Key Decisions
✅ Hybrid Architecture - Plugin includes customer-spa with flexible deployment modes
✅ Progressive Enhancement - Works with any theme, optional full SPA mode
✅ Mobile-First PWA - Fast, app-like experience on all devices
✅ SEO-Friendly - Server-side rendering for product pages, SPA for interactions
Table of Contents
- Architecture Overview
- Deployment Modes
- Feature Scope
- UX Best Practices
- Technical Stack
- Implementation Roadmap
- API Requirements
- Performance Targets
Architecture Overview
Hybrid Plugin Architecture
woonoow/
├── admin-spa/ # Admin interface (existing)
├── customer-spa/ # Customer frontend (NEW)
│ ├── src/
│ │ ├── pages/
│ │ │ ├── Shop/ # Product listing
│ │ │ ├── Product/ # Product detail
│ │ │ ├── Cart/ # Shopping cart
│ │ │ ├── Checkout/ # Checkout process
│ │ │ ├── Account/ # My Account dashboard
│ │ │ └── Orders/ # Order history
│ │ ├── components/
│ │ │ ├── ProductCard/
│ │ │ ├── CartDrawer/
│ │ │ ├── CheckoutForm/
│ │ │ └── AddressForm/
│ │ └── lib/
│ │ ├── api/
│ │ ├── cart/ # Cart state management
│ │ └── checkout/ # Checkout logic
│ └── public/
├── includes/
│ ├── Admin/
│ └── Frontend/
│ ├── Shortcodes/ # [woonoow_cart], [woonoow_checkout]
│ ├── SPA/ # Full SPA mode handler
│ └── Api/ # Customer API endpoints
└── woonoow.php
Deployment Modes
Mode 1: Shortcode Mode (Default) ⭐ RECOMMENDED
Use Case: Works with ANY WordPress theme
How it works:
// In theme template or page builder
[woonoow_shop]
[woonoow_cart]
[woonoow_checkout]
[woonoow_account]
Benefits:
- ✅ Compatible with all themes
- ✅ Works with page builders (Elementor, Divi, etc.)
- ✅ Progressive enhancement
- ✅ SEO-friendly (SSR for products)
- ✅ Easy migration from WooCommerce
Architecture:
- Theme provides layout/header/footer
- WooNooW provides interactive components
- Hybrid SSR + SPA islands pattern
Mode 2: Full SPA Mode
Use Case: Maximum performance, app-like experience
How it works:
// Settings > Frontend > Mode: Full SPA
// WooNooW takes over entire frontend
Benefits:
- ✅ Fastest performance
- ✅ Smooth page transitions
- ✅ Offline support (PWA)
- ✅ App-like experience
- ✅ Optimized for mobile
Architecture:
- Single-page application
- Client-side routing
- Theme provides minimal wrapper
- API-driven data fetching
Mode 3: Hybrid Mode
Use Case: Best of both worlds
How it works:
- Product pages: SSR (SEO)
- Cart/Checkout: SPA (UX)
- My Account: SPA (performance)
Benefits:
- ✅ SEO for product pages
- ✅ Fast interactions for cart/checkout
- ✅ Balanced approach
- ✅ Flexible deployment
Feature Scope
Phase 1: Core Commerce (MVP)
1. Product Catalog
- Product listing with filters
- Product detail page
- Product search
- Category navigation
- Product variations
- Image gallery with zoom
- Related products
2. Shopping Cart
- Add to cart (AJAX)
- Cart drawer/sidebar
- Update quantities
- Remove items
- Apply coupons
- Shipping calculator
- Cart persistence (localStorage)
3. Checkout
- Single-page checkout
- Guest checkout
- Address autocomplete
- Shipping method selection
- Payment method selection
- Order review
- Order confirmation
4. My Account
- Dashboard overview
- Order history
- Order details
- Download invoices
- Track shipments
- Edit profile
- Change password
- Manage addresses
- Payment methods
Phase 2: Enhanced Features
5. Wishlist
- Add to wishlist
- Wishlist page
- Share wishlist
- Move to cart
6. Product Reviews
- Write review
- Upload photos
- Rating system
- Review moderation
- Helpful votes
7. Quick View
- Product quick view modal
- Add to cart from quick view
- Variation selection
8. Product Compare
- Add to compare
- Compare table
- Side-by-side comparison
Phase 3: Advanced Features
9. Subscriptions
- Subscription products
- Manage subscriptions
- Pause/resume
- Change frequency
- Update payment method
10. Memberships
- Member-only products
- Member pricing
- Membership dashboard
- Access control
11. Digital Downloads
- Download manager
- License keys
- Version updates
- Download limits
UX Best Practices
Research-Backed Patterns
Based on Baymard Institute research and industry leaders:
Cart UX
✅ Persistent cart drawer - Always accessible, slides from right
✅ Mini cart preview - Show items without leaving page
✅ Free shipping threshold - "Add $X more for free shipping"
✅ Save for later - Move items to wishlist
✅ Stock indicators - "Only 3 left in stock"
✅ Estimated delivery - Show delivery date
Checkout UX
✅ Progress indicator - Show steps (Shipping → Payment → Review)
✅ Guest checkout - Don't force account creation
✅ Address autocomplete - Google Places API
✅ Inline validation - Real-time error messages
✅ Trust signals - Security badges, SSL indicators
✅ Mobile-optimized - Large touch targets, numeric keyboards
✅ One-page checkout - Minimize steps
✅ Save payment methods - For returning customers
Product Page UX
✅ High-quality images - Multiple angles, zoom
✅ Clear CTA - Prominent "Add to Cart" button
✅ Stock status - In stock / Out of stock / Pre-order
✅ Shipping info - Delivery estimate
✅ Size guide - For apparel
✅ Social proof - Reviews, ratings
✅ Related products - Cross-sell
Technical Stack
Frontend
- Framework: React 18 (with Suspense, Transitions)
- Routing: React Router v6
- State: Zustand (cart, checkout state)
- Data Fetching: TanStack Query (React Query)
- Forms: React Hook Form + Zod validation
- Styling: TailwindCSS + shadcn/ui
- Build: Vite
- PWA: Workbox (service worker)
Backend
- API: WordPress REST API (custom endpoints)
- Authentication: WordPress nonces + JWT (optional)
- Session: WooCommerce session handler
- Cache: Transients API + Object cache
Performance
- Code Splitting: Route-based lazy loading
- Image Optimization: WebP, lazy loading, blur placeholders
- Caching: Service worker, API response cache
- CDN: Static assets on CDN
Implementation Roadmap
Sprint 1-2: Foundation (2 weeks)
- Setup customer-spa build system
- Create base layout components
- Implement routing
- Setup API client
- Cart state management
- Authentication flow
Sprint 3-4: Product Catalog (2 weeks)
- Product listing page
- Product filters
- Product search
- Product detail page
- Product variations
- Image gallery
Sprint 5-6: Cart & Checkout (2 weeks)
- Cart drawer component
- Cart page
- Checkout form
- Address autocomplete
- Shipping calculator
- Payment integration
Sprint 7-8: My Account (2 weeks)
- Account dashboard
- Order history
- Order details
- Profile management
- Address book
- Download manager
Sprint 9-10: Polish & Testing (2 weeks)
- Mobile optimization
- Performance tuning
- Accessibility audit
- Browser testing
- User testing
- Bug fixes
API Requirements
New Endpoints Needed
GET /woonoow/v1/shop/products
GET /woonoow/v1/shop/products/:id
GET /woonoow/v1/shop/categories
GET /woonoow/v1/shop/search
POST /woonoow/v1/cart/add
POST /woonoow/v1/cart/update
POST /woonoow/v1/cart/remove
GET /woonoow/v1/cart
POST /woonoow/v1/cart/apply-coupon
POST /woonoow/v1/checkout/calculate
POST /woonoow/v1/checkout/create-order
GET /woonoow/v1/checkout/payment-methods
GET /woonoow/v1/checkout/shipping-methods
GET /woonoow/v1/account/orders
GET /woonoow/v1/account/orders/:id
GET /woonoow/v1/account/downloads
POST /woonoow/v1/account/profile
POST /woonoow/v1/account/password
POST /woonoow/v1/account/addresses
Performance Targets
Core Web Vitals
- LCP (Largest Contentful Paint): < 2.5s
- FID (First Input Delay): < 100ms
- CLS (Cumulative Layout Shift): < 0.1
Bundle Sizes
- Initial JS: < 150KB (gzipped)
- Initial CSS: < 50KB (gzipped)
- Route chunks: < 50KB each (gzipped)
Page Load Times
- Product page: < 1.5s (3G)
- Cart page: < 1s
- Checkout page: < 1.5s
Settings & Configuration
Frontend Settings Panel
WooNooW > Settings > Frontend
├── Mode
│ ○ Disabled (use theme)
│ ● Shortcodes (default)
│ ○ Full SPA
├── Features
│ ☑ Product catalog
│ ☑ Shopping cart
│ ☑ Checkout
│ ☑ My Account
│ ☐ Wishlist (Phase 2)
│ ☐ Product reviews (Phase 2)
├── Performance
│ ☑ Enable PWA
│ ☑ Offline mode
│ ☑ Image lazy loading
│ Cache duration: 1 hour
└── Customization
Primary color: #000000
Font family: System
Border radius: 8px
Migration Strategy
From WooCommerce Default
- Install WooNooW - Keep WooCommerce active
- Enable Shortcode Mode - Test on staging
- Replace pages - Cart, Checkout, My Account
- Test thoroughly - All user flows
- Go live - Switch DNS
- Monitor - Analytics, errors
Rollback Plan
- Keep WooCommerce pages as backup
- Settings toggle to disable customer-spa
- Fallback to WooCommerce templates
Success Metrics
Business Metrics
- Cart abandonment rate: < 60% (industry avg: 70%)
- Checkout completion rate: > 40%
- Mobile conversion rate: > 2%
- Page load time: < 2s
Technical Metrics
- Lighthouse score: > 90
- Core Web Vitals: All green
- Error rate: < 0.1%
- API response time: < 200ms
Competitive Analysis
Shopify Hydrogen
- Pros: Fast, modern, React-based
- Cons: Shopify-only, complex setup
- Lesson: Simplify developer experience
WooCommerce Blocks
- Pros: Native WooCommerce integration
- Cons: Limited customization, slow
- Lesson: Provide flexibility
SureCart
- Pros: Simple, fast checkout
- Cons: Limited features
- Lesson: Focus on core experience first
Next Steps
- ✅ Review and approve this plan
- ⏳ Create detailed technical specs
- ⏳ Setup customer-spa project structure
- ⏳ Begin Sprint 1 (Foundation)
Decision Required: Approve this plan to proceed with implementation.