# Tasks: mall-pc-storefront-replica ## 1. Mock layer - [x] `apps/mall/mock/data.ts`: fixed bilingual catalog (categories tree, brands, products+SKUs+images, stores, banners, home floors, seckill sessions, collectives, integral goods, comments, coupons, addresses, user profile/orders/invoices), money in minor units - [x] `apps/mall/mock/api.ts`: `createMockApi()` implementing the `@vmall/shared` client surface (auth, products, categories, currencies+convert, cart with in-memory state, checkout, orders, shipments, invoices) returning fixed/derived data - [x] `apps/mall/plugins/api.ts`: select mock vs real client via `runtimeConfig.public.mockApi` (default `true`) ## 2. Shell + shared components - [x] Layout: `TopBar` (30px, city/links/login state), `SiteHeader` (logo, search box, cart badge, dark nav + category mega-menu `CategoryMenu`), `SiteFooter` (value props + copyright), scroll-aware header collapse, back-to-top - [x] Primitives: `ProductCard`, `Pagination`, `Breadcrumb`, `QtyStepper`, `RatingStars`, `EmptyState`, `Modal`, `Tabs`, `Carousel`, `StepBar`; classic B2B2C mall theme via scoped CSS (1200px container, #ca151e, #f5f5f5 floors, card hover lift) - [x] i18n: all new UI strings in `apps/mall/locales-extra.ts` (en/zh) ## 3. Browse pages - [x] Home `/`: hero carousel, quick-link/promo strip, category floors (left adv + product cards) - [x] Goods list `/search`: category/brand/sort filter block, 5-col cards, pagination, empty state - [x] Goods detail `/goods/[id]`: gallery+zoom, attr/SKU picker, qty stepper, price block, coupon/activity strip, store card + sales rail, detail/comments/after-sale tabs ## 4. Transaction pages (mock) - [x] Cart `/cart`: store-grouped table, select/qty/remove, summary + 结算 - [x] Checkout `/checkout`: step bar, address select, store-grouped preview, remark, submit - [x] Pay `/checkout/pay` + success `/checkout/success` ## 5. Auth + user center - [x] `/login`, `/register`, `/forgot-password` panels - [x] `/user` shell: left menu; dashboard, orders list + detail, addresses, favorites, coupons, invoices ## 6. Stores + marketing pages - [x] `/stores` directory + `/stores/[id]` store home - [x] `/seckill` sessions + countdown grid, `/collective` list, `/integral` points mall home ## 7. Verify - [x] `pnpm --filter @vmall/mall build` green - [x] `openspec change validate mall-pc-storefront-replica --strict` green - [x] Browser smoke: home, search, goods detail (SKU pick), cart → checkout → pay → success, login, user center, stores, seckill — in both locales