feat: Community shop — item catalog and admin management UI
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 0
- Forks
- 0
- Avg merge
- 2h 52m
- Merged PRs (30d)
- 85
Description
Context
Communities should be able to run a shop where members can browse and eventually purchase items that go into their inventory. This issue covers the data model and the admin-facing item management UI. Purchase/payment flow is handled separately.
Acceptance Criteria
Admin (Community Owner/Mods)
- Community settings has a "Shop" section
- Admins can create shop items with: name, description, image (upload), price (currency + amount), stock limit (optional, null = unlimited), max-per-user limit (optional), active/inactive toggle
- Admins can edit and delete (or archive) existing items
- Items can be ordered/sorted for display
- Bulk enable/disable items
Member-Facing Shop
- Shop page at
/community/:id/shop(or equivalent route) - Lists active items with image, name, description, price, stock status ("In stock" / "X remaining" / "Out of stock")
- No purchase button in this ticket (placeholder "Buy" button is fine, wired up in payment issue)
- Empty state if no items
Technical Notes
- New DB table:
shop_itemsid,community_id(FK),name,description,image_url,price_cents(integer — avoid float),currency(defaultusd),stock(nullable integer),max_per_user(nullable integer),sort_order,active,sponsor_only(boolean, default false — wired up in gating issue),created_at,updated_at,deleted_at(soft delete)
- Store price in smallest currency unit (cents) to avoid floating point rounding
- Use existing image upload infrastructure for item images
- Align item model with existing inventory/trait item model if one exists — shop items should eventually map to inventory item types
Dependencies
None — foundational, no prerequisites.
Future Scope
- Sponsor-only item gating (separate issue, adds
sponsor_onlyflag to this schema) - Stripe checkout integration (separate issue)
- Bundle/pack items
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by locating the community settings and /community/:id/shop entry points, then inspect the existing image upload infrastructure and inventory/trait item model. Define the shop_items data model around the listed fields and follow the project’s conventions for admin and member-facing UI. Done means the admin management actions and member shop states in the acceptance criteria are covered, without purchase or sponsor gating.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript
- Domain
- databases, full-stack
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100