feat(aftersale): per-line refund/return flow with ledger-backed completion (add-aftersale-refunds)

This commit is contained in:
Chengdong Zhang
2026-09-23 16:56:30 +08:00
parent 93e5a05d48
commit 2c2b54c21c
43 changed files with 4889 additions and 32 deletions
+15
View File
@@ -72,3 +72,18 @@ Platform admins SHALL manage the ordered brand registry on a brands page reachab
- **WHEN** a save succeeds or the API refuses the list
- **THEN** the page shows a success confirmation or keeps the edited rows with a failure message, respectively
### Requirement: Platform aftersale monitoring and arbitration
The platform admin console SHALL provide a read-only cross-shop aftersale list and detail view with customer, shop, order-item, amount, evidence, status, message history, and refund-total context. A platform administrator SHALL be able to resolve an escalated dispute with a terminal refund or rejection through the guarded service path, without directly editing balances or bypassing shop ownership checks.
#### Scenario: admin inspects a cross-shop application
- **WHEN** a platform administrator opens the aftersale workspace
- **THEN** applications from all shops are listed with filters and authoritative status and refund amounts
#### Scenario: admin grants terminal refund
- **WHEN** a platform administrator resolves an eligible dispute in favor of the customer
- **THEN** the aftersale reaches refunded, the customer ledger is credited once, and the order refund total refreshes from the API
#### Scenario: admin rejects terminal dispute
- **WHEN** a platform administrator rejects an escalated dispute
- **THEN** the aftersale reaches rejected and the console shows that only the permitted one-time customer reopen can resume it