# quiXzoom Shop E-handel för quiXzoom Field Gear Collection. ## Arkitektur - **Backend:** FastAPI + asyncpg + Redis - **Databas:** PostgreSQL (delad med IOM) - **Frontend:** Jinja2-templates (mobilanpassade) - **App:** WebView som laddar shoppen - **Gating:** Endast Zoomers med 10+ completed missions ## Produkter 18 produkter i Field Gear Collection: - Kläder: Field Vest, Mission Shell, Field Pants, Base Layer - Accessoarer: Field Beanie, Field Gloves, Ref. Coin, Tactical Belt, quiXzoom Patch, Field Socks - Utrustning: Capture Strap, Utility Pouch, Pocket Light, Power Module, Cable Kit, Rain Cover, Field Bag, Field Bottle ## API Endpoints | Endpoint | Method | Auth | Beskrivning | |----------|--------|------|-------------| | `/health` | GET | Nej | Health check | | `/api/products` | GET | Nej | Lista produkter | | `/api/products/{id}` | GET | Nej | Produktinfo | | `/api/eligibility` | GET | Ja | Kolla om användare får handla | | `/api/orders` | POST | Ja | Skapa order | | `/api/orders` | GET | Ja | Lista mina ordrar | | `/api/orders/{id}` | GET | Ja | Orderdetaljer | ## Deployment ```bash # Bygg docker build -t quixzoom-shop:latest . # Kör (kräver att iom-network finns) docker-compose up -d ``` ## Miljövariabler | Variabel | Default | Beskrivning | |----------|---------|-------------| | `DATABASE_URL` | `postgresql://iom:iom_secret@localhost:5432/iom` | PostgreSQL connection | | `REDIS_URL` | `redis://localhost:6379/0` | Redis connection | | `JWT_SECRET` | `quixzoom_secret` | JWT signing key | | `SHOP_MISSION_THRESHOLD` | `10` | Minsta antal uppdrag för att handla | ## Integration med quiXzoom App 1. Appen har en "Shop"-tab (🛒) 2. WebView laddar `https://shop.quixzoom.com` 3. Token injectas via `localStorage` 4. Eligibility checkas vid laddning 5. Om < 10 uppdrag → låsskärm med progress ## Framtida förbättringar - [ ] Stripe betalningsintegration - [ ] Admin-panel för produkthantering - [ ] Orderhantering (packing, shipping) - [ ] Inventory tracking - [ ] Kampanjkoder - [ ] Wishlist