1.7 KiB
1.7 KiB
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