# WooNooW Customer SPA

Modern React-based storefront and customer portal for WooNooW.

## Features

- **Product Catalog** - Browse products with filters and search
- **Shopping Cart** - Add to cart with real-time updates
- **Checkout** - Single-page checkout with address autocomplete
- **My Account** - Order history, profile, and addresses
- **Mobile-First** - Responsive design for all devices
- **PWA Ready** - Offline support and app-like experience

## Development

```bash
# Install dependencies
npm install

# Start dev server (https://woonoow.local:5174)
npm run dev

# Build for production
npm run build

# Preview production build
npm run preview

# Lint code
npm run lint
```

## Project Structure

```
customer-spa/
├── src/
│   ├── pages/          # Page components (Shop, Cart, Checkout, Account)
│   ├── components/     # Reusable UI components
│   ├── lib/
│   │   ├── api/        # API client and endpoints
│   │   ├── cart/       # Cart state management (Zustand)
│   │   ├── checkout/   # Checkout logic
│   │   └── tracking/   # Analytics and pixel tracking
│   ├── hooks/          # Custom React hooks
│   ├── contexts/       # React contexts
│   └── types/          # TypeScript type definitions
├── public/             # Static assets
└── dist/               # Build output (generated)
```

## Tech Stack

- **React 18** - UI framework
- **TypeScript** - Type safety
- **Vite** - Build tool
- **React Router** - Routing
- **TanStack Query** - Data fetching
- **Zustand** - State management
- **TailwindCSS** - Styling
- **shadcn/ui** - UI components
- **React Hook Form** - Form handling
- **Zod** - Schema validation

## API Integration

The SPA communicates with WordPress via REST API endpoints:

- `/wp-json/woonoow/v1/shop/*` - Product catalog
- `/wp-json/woonoow/v1/cart/*` - Shopping cart
- `/wp-json/woonoow/v1/checkout/*` - Checkout process
- `/wp-json/woonoow/v1/account/*` - Customer account

## Deployment Modes

### 1. Shortcode Mode (Default)
Works with any WordPress theme via shortcodes:
- `[woonoow_shop]`
- `[woonoow_cart]`
- `[woonoow_checkout]`
- `[woonoow_account]`

### 2. Full SPA Mode
Takes over entire frontend for maximum performance.

### 3. Hybrid Mode
SSR for product pages (SEO), SPA for cart/checkout/account.

## SEO & Tracking

- **SEO-Friendly** - Server-side rendering for product pages
- **Analytics** - Google Analytics, GTM support
- **Pixels** - Facebook, TikTok, Pinterest pixel support
- **PixelMySite** - Full compatibility

## License

Proprietary - Part of WooNooW plugin
