## ADDED Requirements ### Requirement: Merchant shop profile editing Shop users SHALL edit their own shop's profile from a shop-admin page reachable from the shop-scoped navigation, through the shared API adapter's shop-scoped profile update. The form SHALL prefill from the shop's current profile and cover the merchant-writable fields only: logo and banner URLs, company, region, and `{ en, zh }` bilingual address, notice and after-sale copy. Bilingual fields SHALL be validated with non-empty `en` and `zh` text before any request is sent, every write SHALL target the caller's own shop, and profile scores SHALL NOT be editable — they remain platform-set and saving never changes them. Saves SHALL give clear success feedback; a refused save SHALL keep the form values and show a visible failure message. #### Scenario: merchant updates their own profile - **WHEN** a shop owner edits their notice, saves, and the mall store page reloads - **THEN** only that shop shows the new notice and no other shop's profile changes #### Scenario: incomplete bilingual text is blocked before submit - **WHEN** a shop owner leaves the `zh` after-sale text empty and saves - **THEN** the field shows an inline error and no update request is sent #### Scenario: scores are not editable - **WHEN** the profile page loads and is saved - **THEN** no score fields are offered and the platform-set scores remain unchanged #### Scenario: refused save keeps the form - **WHEN** the API refuses an update - **THEN** the page keeps the entered values and shows a failure message