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

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