Saltar al contenido principal

FlowPOS Retail Apparel — Feature Roadmap

Last updated: 2026-02-27 Branch: retail-processes

This folder documents the 8 planned retail apparel features. Each file covers the full implementation scope: Database → Backend → PWA Frontend, with task checklists for agents to track progress.


Implementation Phases​

Phase 1 — Foundation (no inter-dependencies)​

#FeatureDocStatus
7Collections (seasonal groups)07-collections.md⏳ Pending
1Variant Matrix Editor01-variant-matrix-editor.md⏳ Pending
2Return / Exchange Workflow02-return-exchange-workflow.md⏳ Pending

Phase 2 — Financial Features​

#FeatureDocStatus
5Store Credit05-store-credit.md⏳ Pending
4Loyalty Program04-loyalty-program.md⏳ Pending
3Apparel Analytics Reports03-apparel-analytics-reports.md⏳ Pending

Phase 3 — Revenue Acceleration​

#FeatureDocStatus
6Promotions Engine06-promotions-engine.md⏳ Pending
8Suggested Replenishment08-suggested-replenishment.md⏳ Pending

Gap Analysis​

Legend: ✅ Done · ⚠️ Partial · ❌ Missing

1. Sales & Checkout​

FeatureDBBackendPWAStatus
Basic sale creation✅✅✅✅ Done
Cash / card payment✅✅✅✅ Done
Split payment (multiple methods)✅✅⚠️⚠️ Partial
Barcode scan to add product✅✅⚠️⚠️ Partial
Variant selection (size × color) at POS❌❌❌❌ Missing
Apply discount (line / total)✅✅⚠️⚠️ Partial
Apply promotion / coupon code❌❌❌❌ Missing
Store credit as payment method❌❌❌❌ Missing
Loyalty points redemption at POS❌❌❌❌ Missing
Return / refund at POS⚠️⚠️❌❌ Missing
Exchange (return + new sale)❌❌❌❌ Missing
Receipt print / email✅✅⚠️⚠️ Partial
Cash register session (open/close)✅✅✅✅ Done

2. Inventory Management​

FeatureDBBackendPWAStatus
Multi-location stock levels✅✅⚠️⚠️ Partial
Stock adjustment✅✅✅✅ Done
Stock transfer between locations✅✅⚠️⚠️ Partial
Physical inventory count✅✅⚠️⚠️ Partial
Variant-level stock (size × color)❌❌❌❌ Missing
Low-stock alerts❌❌❌❌ Missing
Suggested replenishment❌❌❌❌ Missing
Stock movement history✅✅❌⚠️ Partial
Production run (manufacturing)✅✅⚠️⚠️ Partial

3. Purchasing​

FeatureDBBackendPWAStatus
Supplier management✅✅✅✅ Done
Purchase order creation✅✅✅✅ Done
Goods received note (GRN)✅✅✅✅ Done
PO from replenishment suggestion❌❌❌❌ Missing
Supplier price list⚠️⚠️❌⚠️ Partial
Purchase order approval workflow❌❌❌❌ Missing

4. Pricing & Promotions​

FeatureDBBackendPWAStatus
Base price per product✅✅✅✅ Done
Price lists (customer segments)✅✅⚠️⚠️ Partial
Manual line discount at POS✅✅⚠️⚠️ Partial
Promotion engine (rules-based)❌❌❌❌ Missing
Coupon / promo code❌❌❌❌ Missing
BOGO / bundle deals❌❌❌❌ Missing
Seasonal markdown (% off category)❌❌❌❌ Missing
Flash sale (time-bound discount)❌❌❌❌ Missing

5. Customer Management​

FeatureDBBackendPWAStatus
Customer profile (name, contact)✅✅✅✅ Done
Purchase history per customer✅✅⚠️⚠️ Partial
Loyalty program (points earn/burn)❌❌❌❌ Missing
Store credit balance❌❌❌❌ Missing
Customer segments / tags❌❌❌❌ Missing
Return history per customer⚠️⚠️❌⚠️ Partial

6. Store Operations​

FeatureDBBackendPWAStatus
Cash register open / close✅✅✅✅ Done
Z-report (end-of-day summary)✅✅⚠️⚠️ Partial
Safe / drawer management✅✅✅✅ Done
Role-based access (cashier, manager)✅✅⚠️⚠️ Partial
Multi-location support✅✅⚠️⚠️ Partial
Shift handover report❌❌❌❌ Missing

7. Product & Catalog​

FeatureDBBackendPWAStatus
Product CRUD✅✅✅✅ Done
Category tree✅✅✅✅ Done
Color & size attributes✅✅⚠️⚠️ Partial
Variant matrix (size × color grid)❌❌❌❌ Missing
Barcode / SKU generation✅✅❌⚠️ Partial
Label printing❌❌❌❌ Missing
Collections (seasonal grouping)❌❌❌❌ Missing
Product images✅✅⚠️⚠️ Partial
Unit of measure✅✅✅✅ Done

Priority Summary​

❌ Completely Missing — Ranked by Apparel Importance​

PriorityFeatureImpact
🔴 CriticalVariant Matrix Editor (size × color)Every apparel product needs this
🔴 CriticalVariant-level inventory stockStock accuracy by size/color
🔴 CriticalReturn / Exchange PWA UICustomer-facing workflow
🔴 CriticalPromotions EngineSeasonal markdowns, BOGO
🟠 HighCollections (seasonal grouping)Catalog organization
🟠 HighLoyalty ProgramCustomer retention
🟠 HighStore CreditReturn refund alternative
🟠 HighSuggested ReplenishmentPrevent stockouts
🟡 MediumApparel Analytics ReportsSize curve, sell-through %
🟡 MediumCoupon / promo codeMarketing campaigns
🟡 MediumLow-stock alertsOperational efficiency
🟢 Nice to haveLabel printingBarcode label generation

⚠️ Partially Implemented — What's Missing​

FeatureWhat ExistsWhat's Missing
Split paymentDB + backend donePWA UI to select multiple methods
Barcode scanProduct lookup by barcodePWA camera/scanner integration
Manual discountDB + backend donePWA discount field on line items
Z-reportDB + backend donePWA report viewer / print
Color & size attributesDB + backend donePWA variant matrix grid editor

Shared Conventions​

Database Migration Pattern​

packages/backend/database/src/migrations/<timestamp>-<feature>.mjs
  • Enums first → tables → indexes → rollback mirrors up in reverse
  • All tables include: id, business_id, is_active, created_at, created_by, updated_at, updated_by
  • After every migration: pnpm run generate:types

Backend Module Pattern (Hexagonal)​

apps/backend/src/<feature>/
├── <feature>.module.ts
├── application/<feature>.service.ts
├── domain/<feature>-repository.domain.ts
├── infrastructure/<feature>.repository.ts
└── interfaces/
├── <feature>.controller.ts
└── dtos/ + query/
  • Error handling: errorFirstWrapAsync() + Errors.from()
  • DTOs: class-validator; Update = PartialType(Create) + updatedBy
  • Pagination: OffsetPaginationMixin(SortMixin(SearchQuery))

PWA Frontend Pattern​

apps/frontend-pwa/src/components/forms/<feature>/
├── <Feature>Page.tsx — page wrapper with context hooks
└── <Feature>Form.tsx — react-hook-form + zod form
apps/frontend-pwa/src/services/<feature>Service.ts
apps/frontend-pwa/src/types/<feature>.ts
  • Register new pages in: apps/frontend-pwa/src/pages/MainPage.tsx

Verification Steps (run after each feature)​

  1. pnpm run migration:local:push — migration applies cleanly
  2. pnpm run generate:types — new types visible
  3. pnpm --filter backend run build — no TS errors
  4. pnpm --filter frontend-pwa run build — no TS errors
  5. End-to-end: create record via PWA → verify in pgAdmin (localhost:8080)