simpleshop_theme/PROGRESS.md
jamey f244a42546 feat: add cart page, cart drawer, and shared cart infrastructure
- Cart context with pure functions for add/remove/update/hydrate
- Price formatting via ex_money (replaces all float division)
- CartHook on_mount with attach_hook for shared event handlers
  (open/close drawer, remove item, PubSub sync)
- Accessible cart drawer with focus trap, scroll lock, aria-live
- Cart page with increment/decrement quantity controls
- Preview mode cart drawer support in theme editor
- Cart persistence to session via JS hook + API endpoint
- 19 tests covering all Cart pure functions

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-06 00:51:16 +00:00

4.8 KiB

SimpleShop Progress

Single source of truth for project status and task tracking.

Current Status

Working:

  • Theme editor with 8 presets, instant switching, full customization
  • Image optimization pipeline (AVIF/WebP/JPEG responsive variants)
  • Shop pages (home, collections, products, cart, about, contact)
  • Mobile-first design with bottom navigation
  • 100% PageSpeed score
  • Variant selector with color swatches and size buttons

In Progress:

  • Session-based cart

Next Up

  1. Session-based Cart - Real cart with actual variants
  2. Stripe Checkout Integration - Payment processing
  3. Orders & Fulfillment - Submit orders to Printify

Feature Areas

Theme System

Status: Complete

  • 8 theme presets (Gallery, Studio, Boutique, etc.)
  • Three-layer CSS architecture (primitives, attributes, semantic)
  • Instant theme switching via CSS custom property injection
  • Logo/header image uploads with SVG recoloring
  • Self-hosted fonts (10 typefaces, GDPR compliant)
  • ETS-cached CSS generation

Image Optimization

Status: Complete

  • Oban background job processing
  • Responsive <picture> element (AVIF/WebP/JPEG)
  • Only generates sizes <= source dimensions
  • Disk cache for variants (regenerable from DB)
  • mix optimize_images task for mockups
  • On-demand JPEG fallback generation
  • Product image download pipeline (downloads Printify CDN images, processes through Media pipeline)
    • ImageDownloadWorker downloads and links images to ProductImage
    • PreviewData uses local images for responsive <picture> elements
    • Startup recovery re-enqueues pending downloads
    • mix simpleshop.download_images backfill task

See: docs/plans/image-optimization.md for implementation details

Products & Provider Integration

Status: Complete

  • Products context with schemas (c5c06d9)
  • Provider abstraction layer
  • Printify client integration
  • Product/variant/image schemas
  • Admin Provider Setup UI (/admin/providers) - connect, test, sync
  • ProductSyncWorker with pagination, parallel processing, error recovery
  • Slug-based fallback matching for changed provider IDs
  • Printify webhook endpoint with HMAC verification (a9c15ea)
    • Note: Printify only supports product:deleted and product:publish:* events (no product:updated)
  • Product image download pipeline (1b49b47)
    • Downloads Printify CDN images via ImageDownloadWorker
    • Processes through Media pipeline (WebP conversion, AVIF/WebP variants)
    • Startup recovery and mix simpleshop.download_images backfill
  • Variant selector component (880e7a2)
    • Color swatches with hex colors, size buttons
    • Fixed Printify options parsing (Color/Size swap bug)
    • Filters to only published variants (not full catalog)
    • Price updates on variant change
    • Startup recovery for stale sync status

Future Enhancements (post-MVP)

  • Pre-checkout variant validation (verify availability before order)
  • Cost change monitoring/alerts (warn if Printify cost increased)
  • OAuth platform integration (appear in Printify's "Publish to" UI)

Technical Debt

  • Add HTTP mocking (Mox/Bypass) for Printify API tests

See: docs/plans/products-context.md for implementation details See: docs/plans/printify-integration-research.md for API research & risk analysis

Cart & Checkout

Status: Planned

  • Session-based cart module
  • Cart LiveView with real variants
  • Stripe Checkout integration
  • Order creation and persistence

See: ROADMAP.md for design notes

Orders & Fulfillment

Status: Planned

  • Orders context with schemas
  • Order submission to Printify
  • Order status tracking
  • Customer notifications

See: docs/plans/products-context.md for schema design

Page Builder

Status: Future

Database-driven pages with drag-and-drop sections.

See: docs/plans/page-builder.md for design


Completed Work Reference

Feature Commit Notes
Variant selector 880e7a2 Color swatches, size buttons, price updates
Product image download 1b49b47 PageSpeed 100% with local images
Wire shop to real data c818d03 PreviewData uses Products context
Printify webhooks a9c15ea Deletion + publish events
Products context Phase 1 c5c06d9 Schemas, provider abstraction
Admin provider setup UI 5b736b9 Connect, test, sync with pagination
Oban Lifeline plugin c1e1988 Rescue orphaned jobs
Image optimization Multiple Full pipeline complete
Self-hosted fonts - 10 typefaces, 728KB
Mobile bottom nav - Fixed tab bar
PageSpeed 100% - All optimizations
Theme presets (8) - Gallery, Studio, etc.