feat: jersey size selector on checkout page #65

Closed
opened 2026-03-21 21:04:12 +00:00 by forgejo_admin · 0 comments

Type

Feature

Lineage

plan-wkq → Phase 11 (Girls Tryout) → discovered during jersey email blast 2026-03-21
Parent reported no size option on jersey checkout page.

Repo

forgejo_admin/westside-app

User Story

As a parent, I want to select a jersey size on the checkout page so that my child gets the right fit

Context

The /jersey page shows three option cards (Reversible $90, Jersey+Warmup $130, Opt Out $0) but no size selection. Each card needs a size dropdown. When parent clicks "Order — $90", the selected size is sent to POST /jersey/checkout alongside the option. Backend passes size through Stripe metadata. Available sizes from GET /jersey/sizes endpoint (YS, YM, YL, YXL, AS, AM, AL, AXL).

File Targets

Files the agent should modify:

  • src/routes/jersey/+page.svelte — add size dropdown to each option card (except opt-out). Fetch sizes from API. Disable "Order" button until size is selected. Send size param with checkout request.

Files the agent should NOT touch:

  • src/routes/ other routes — unrelated
  • Auth/layout files — unrelated

Acceptance Criteria

  • Each jersey option card (except opt-out) shows a size dropdown
  • Size dropdown populated from GET /jersey/sizes API endpoint
  • "Order" button disabled until size is selected
  • Selected size sent to POST /jersey/checkout as size param
  • Opt-out card has no size selector
  • Mobile responsive — dropdown works on phone screens

Test Expectations

  • Manual: navigate to /jersey?token=..., see size dropdowns
  • Manual: can't click Order without picking size
  • Manual: checkout creates Stripe session with size in metadata

Constraints

  • Match existing card design style (dark cards, red accent, brand fonts)
  • Size dropdown should show human-readable labels: "Youth Small (YS)", "Adult Medium (AM)", etc.
  • Depends on basketball-api #141 (sizes endpoint + checkout param) — backend must deploy first

Checklist

  • PR opened
  • No unrelated changes
  • Works on mobile
  • plan-wkq — Phase 11
  • project-westside-basketball
  • basketball-api #141 — backend size support (dependency)
### Type Feature ### Lineage `plan-wkq` → Phase 11 (Girls Tryout) → discovered during jersey email blast 2026-03-21 Parent reported no size option on jersey checkout page. ### Repo `forgejo_admin/westside-app` ### User Story As a parent, I want to select a jersey size on the checkout page so that my child gets the right fit ### Context The `/jersey` page shows three option cards (Reversible $90, Jersey+Warmup $130, Opt Out $0) but no size selection. Each card needs a size dropdown. When parent clicks "Order — $90", the selected size is sent to `POST /jersey/checkout` alongside the option. Backend passes size through Stripe metadata. Available sizes from `GET /jersey/sizes` endpoint (YS, YM, YL, YXL, AS, AM, AL, AXL). ### File Targets Files the agent should modify: - `src/routes/jersey/+page.svelte` — add size dropdown to each option card (except opt-out). Fetch sizes from API. Disable "Order" button until size is selected. Send `size` param with checkout request. Files the agent should NOT touch: - `src/routes/` other routes — unrelated - Auth/layout files — unrelated ### Acceptance Criteria - [ ] Each jersey option card (except opt-out) shows a size dropdown - [ ] Size dropdown populated from `GET /jersey/sizes` API endpoint - [ ] "Order" button disabled until size is selected - [ ] Selected size sent to `POST /jersey/checkout` as `size` param - [ ] Opt-out card has no size selector - [ ] Mobile responsive — dropdown works on phone screens ### Test Expectations - [ ] Manual: navigate to `/jersey?token=...`, see size dropdowns - [ ] Manual: can't click Order without picking size - [ ] Manual: checkout creates Stripe session with size in metadata ### Constraints - Match existing card design style (dark cards, red accent, brand fonts) - Size dropdown should show human-readable labels: "Youth Small (YS)", "Adult Medium (AM)", etc. - Depends on basketball-api #141 (sizes endpoint + checkout param) — backend must deploy first ### Checklist - [ ] PR opened - [ ] No unrelated changes - [ ] Works on mobile ### Related - `plan-wkq` — Phase 11 - `project-westside-basketball` - basketball-api #141 — backend size support (dependency)
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
forgejo_admin/westside-landing#65
No description provided.