Files
vmall/openspec/changes/add-aftersale-refunds/specs/frontend-mall/spec.md
T

25 lines
1.7 KiB
Markdown

## ADDED Requirements
### Requirement: Mall aftersale customer flow
The Mall SHALL use the shared selected API adapter to expose an after-sale action for eligible order items, an aftersale list and detail view, chronological buyer/merchant messages, cancellation and one-time rejected appeal, and return-refund shipping tracking. The form SHALL show the localized reason/type, integer minor-unit amount and remaining limit, evidence URL inputs, current status, and authoritative refund result. Anonymous actions SHALL redirect to sign-in with the current route as return destination.
#### Scenario: apply from an eligible order line
- **WHEN** a signed-in shopper opens a paid or shipped order inside its after-sale window and submits a valid item application
- **THEN** the Mall creates the aftersale through the shared client and shows its pending status without fixture-only state
#### Scenario: return shipping is recorded
- **WHEN** an approved return-refund shopper submits carrier and tracking data
- **THEN** the detail view shows the buyer-shipping status and the persisted tracking information after reload
#### Scenario: shopper cancels an application
- **WHEN** a shopper cancels a non-terminal pending aftersale
- **THEN** the API state and list/detail views show cancelled and merchant actions are no longer offered
#### Scenario: shopper messages the merchant
- **WHEN** a shopper sends a localized message with optional evidence URLs
- **THEN** it appears in chronological detail history and remains after a reload
#### Scenario: fixed adapter remains usable
- **WHEN** the aftersale domain is configured for fixed data
- **THEN** Mall list, detail, messages, cancellation, tracking, and refund-history flows behave deterministically through the same shared methods