Product Requirements & User Stories
MoSCoW prioritized user stories for the Hyundai E-commerce B2B platform
Product Requirements & User Stories (MoSCoW)
This project follows the MoSCoW prioritization method to clearly define scope, with a strong focus on B2B heavy logistics and industrial equipment transactions.
MUST HAVE
US-M01: Advanced Technical Specification Filtering
- Epic: Product Management
- Narrative: As a factory owner, I want to filter generators by power output (> 500 kVA), number of phases (3-phase), and fuel type (Diesel), so that I can quickly find machines that meet my facility’s electrical requirements without reading every product description.
- Acceptance Criteria:
- The system must support filtering on the
specsJSONB column in the database. - When no products match the filters, a clear “No matching products found” message is displayed.
- The system must support filtering on the
US-M02: Manual Quote Request Flow
- Epic: Checkout & Heavy Logistics
- Narrative: As a corporate customer, I want to request a detailed quote for high-value equipment (e.g., a 2 billion VND generator), so that I am not forced to make an immediate full payment.
- Acceptance Criteria:
- Clicking “Request Quote” creates an order record with status
PENDING_REVIEW. - The system notifies the admin via email.
- Clicking “Request Quote” creates an order record with status
US-M03: Shipping Fee & Quote Finalization (Admin)
- Epic: CMS Admin
- Narrative:
As an admin,
I want to add shipping and crane fees to a quote and change its status to
PRICE_UPDATED, so that the customer receives a final price and payment link. - Acceptance Criteria:
- Admin can update the
shipping_bidstable and finalize the quote. - A database transaction updates the order total and status.
- Admin can update the
US-M04: Concurrency Control for Clearance Sale Items
- Epic: Order & Payment Management
- Narrative: As a customer, I want to successfully purchase a limited-stock clearance item, so that I am not charged if another customer has already bought it.
- Acceptance Criteria:
- The system uses row-level locking or optimistic concurrency to prevent overselling.
- Concurrent purchase attempts return HTTP 409 Conflict with a clear user message.
US-M05: Authentication & Authorization Foundation
- Epic: Authentication & Authorization
- Narrative: As a dealer or admin, I want to log in, log out, and reset my password, so that I can securely access the system with appropriate permissions (RBAC).
- Acceptance Criteria:
- Failed login attempts are rate-limited.
- Successful login issues a secure session.
US-M06: Core Product Management (CRUD)
- Epic: CMS Admin
- Narrative: As an administrator, I want to create, update, and delete products (including uploading images and entering technical specifications), so that the storefront displays accurate and complete product data.
- Acceptance Criteria:
- Products are stored with technical specs in a JSONB column.
- Images are uploaded to Cloudinary.
US-M07: Standard Cart & Full Payment Flow
- Epic: Checkout & Heavy Logistics
- Narrative: As an individual buyer, I want to add lower-value products to the cart and complete full payment via VNPay, so that I can purchase without going through the quote process.
- Acceptance Criteria:
- Products with
is_quote_only = falsecan be added to cart. - The system creates an order with status
PENDING_PAYMENTand generates a VNPay payment link.
- Products with
SHOULD HAVE
US-S01: AI-Powered Product Recommendation Chatbot
- Epic: AI Integrations
- Narrative: As a customer, I want to describe my needs (e.g., “500m² factory with 10 air conditioners”), so that the system recommends suitable generators.
- Acceptance Criteria:
- The chatbot uses LangGraph for intent routing and tool calling against the product database.
US-S02: Deposit Payment Support
- Epic: Order & Payment Management
- Narrative: As a customer, I want to pay a 30% deposit to reserve high-value equipment.
- Acceptance Criteria:
- Successful deposit updates order status to
DEPOSIT_PAIDand reduces stock.
- Successful deposit updates order status to
US-S03: Automatic Quote Expiration
- Epic: Background Processing
- Narrative: As an admin, I want quotes that have been priced but not paid within 48 hours to be automatically expired.
- Acceptance Criteria:
- A scheduled job marks expired quotes and releases any stock reservations.
US-S04: Customer Quote History Portal
- Epic: Customer Account
- Narrative: As a logged-in corporate customer, I want to view my quote history and current status.
- Acceptance Criteria:
- The dashboard shows all past and active quotes with status and actions.
US-S05: Product Comparison & Datasheet Download
- Epic: Product Discovery & UX
- Narrative: As a technical buyer or contractor, I want to compare up to 3 products side-by-side and download original datasheets.
- Acceptance Criteria:
- Specs from JSONB are displayed in a comparison table.
- Datasheet PDFs can be downloaded directly.
COULD HAVE
- Dynamic shipping cost calculation using Google Maps API and machine weight.
- Multi-stage payment dashboard (30% / 50% / 20%).
- Automatic PDF quote generation with official stamps.
- Dynamic form builder in CMS for adding new product attributes without code changes.
WON'T HAVE
- C2C marketplace functionality.
- Native mobile applications (iOS/Android).
- Cryptocurrency or Bitcoin payment integration.