parity(docs): record D13 — retail storefront preserved but out of scope
The owner ruled that the reference also ran a retail storefront (B2C
single-customer shop) and that the wallet, cashback and
ConfigStatic['percent'] belong to it. These are preserved exactly as they
are: nothing deleted or disabled on either side, no parity work, listed in
the matrices with status "preserved — out of current scope" and no gap or
work row. Shared surfaces (product, variant, price, order, customer) need
the owner's approval before a change that could reach the storefront.
Classifying the endpoints for that split surfaced a counting error in the
Phase 0 inventory: routes/admin.php has 151 live explicit routes, not the
117 recorded, so the reference total is 412 and not 369 (logged DOC-01).
get-analytics-tak reads SingleCustomerOrders, so it is a storefront route
despite its neutral name (logged DOC-02).
Of the 412 reference endpoints, 109 are retail storefront, 15 are web.php
dev/ops closures, and 288 remain in scope (218 admin + 70 B2B app).
[ref: henza_server/routes/{admin,api,customer,site,web}.php]
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
024e3dd045
commit
c71574b1d2
@@ -459,3 +459,73 @@ now exists, so they can be closed, but `CreateOrderDto` carries `customerId` in
|
||||
the body and changing that is an API-contract change touching both apps' cart
|
||||
flow. Left for the Phase 2 apps work rather than widened into this hotfix.
|
||||
Tracked as SEC-02 (B1/B2) in `ISSUES.md`.
|
||||
|
||||
---
|
||||
|
||||
# D13 — Retail storefront: preserved, but out of scope (2026-09-22)
|
||||
|
||||
**Owner's ruling.** The reference also contained a **retail storefront**
|
||||
(single-customer / B2C shop). The **wallet**, **cashback** and
|
||||
`ConfigStatic['percent']` belong to that storefront, not to the B2B gold
|
||||
business this project is porting.
|
||||
|
||||
## The rule
|
||||
|
||||
1. **Nothing is deleted or disabled.** No code, table, column, endpoint, setting
|
||||
or data belonging to the storefront may be removed or switched off — neither
|
||||
in the target nor in the reference. Whatever exists in the target today stays
|
||||
exactly as it is.
|
||||
2. **No work is done on it.** No parity, no fixes, no refactoring.
|
||||
3. **In the matrices** these items are listed with status
|
||||
**⏸️ حفظشده — خارج از کار فعلی** (preserved — out of current scope) so they
|
||||
remain visible, but **no gap row and no work row is created for them**.
|
||||
4. **Shared surfaces need a heads-up.** If fixing something shared — product,
|
||||
variant, price, order, customer — would affect the storefront, **ask the
|
||||
owner before changing it**, so nothing in the storefront breaks.
|
||||
5. **No guessing.** If it is unclear whether something is storefront-only or
|
||||
shared, **list it and ask**.
|
||||
|
||||
## Status legend addition
|
||||
|
||||
| Symbol | Meaning |
|
||||
|---|---|
|
||||
| ⏸️ | Preserved — out of current scope (D13). Listed for visibility only; no gap row, no work row. |
|
||||
|
||||
## Endpoint classification — where the reference endpoints go
|
||||
|
||||
**The previously reported total of 369 was wrong; the real figure is 412.**
|
||||
Recounting the live routes per file (excluding the 6 commented-out ones,
|
||||
expanding `Route::resource` ×7 and `Route::match(['get','post'])` ×2) shows
|
||||
`admin.php` has **151** explicit routes, not the 117 recorded in
|
||||
`_inv-ref-server.md` §3.6 — so admin is **249**, not 215. Corrected in
|
||||
`00-INVENTORY.md` §2.1.
|
||||
|
||||
| Surface | Route file(s) | Endpoints | In scope? |
|
||||
|---|---|---|---|
|
||||
| Admin panel — B2B | `admin.php` minus the storefront block below | **218** | ✅ in scope (Phase 1) |
|
||||
| Admin panel — storefront management | `admin.php`: wallet 6, `single*` 8, comment 2, `get-analytics-tak` 1 explicit + `single` resource 7 + `comment` resource 7 | **31** | ⏸️ preserved, out of scope |
|
||||
| B2B mobile app | `api.php` | **70** | ✅ in scope (Phase 2) |
|
||||
| Retail storefront — customer API | `customer.php` | **48** | ⏸️ preserved, out of scope |
|
||||
| Retail storefront — public site API | `site.php` | **30** | ⏸️ preserved, out of scope |
|
||||
| Dev/ops closures, price cron, redirects | `web.php` | **15** | ⏸️ out of scope (dead/dev — see DEAD-\* in `ISSUES.md`) |
|
||||
| **Total** | | **412** | |
|
||||
|
||||
**Result: 109 of the 412 endpoints belong to the retail storefront**
|
||||
(48 `customer.php` + 30 `site.php` + 30 storefront management inside
|
||||
`admin.php`), **15 more are dev/ops closures in `web.php`**, and
|
||||
**288 remain in scope** (218 admin + 70 B2B app).
|
||||
|
||||
Evidence for the storefront classification:
|
||||
|
||||
| Block | Where | Why it is storefront |
|
||||
|---|---|---|
|
||||
| `routes/customer.php` (prefix `cu`) | whole file | guarded by `auth:api-singleCustomer`; cart, fav, address, comment, payment gateway, `customer/wallet` |
|
||||
| `routes/site.php` (prefix `site`) | whole file | public shop front: `Site\SiteController`, `Site\CollectionController`, `Api\SiteController` |
|
||||
| `admin/wallet/*` | `admin.php:186-191` | `Adm\WalletController` — cashback percent, charge, config |
|
||||
| `admin/single*` | `admin.php:35,59,60,194-199` | `Adm\SingleCustomerController` — the retail customer's orders, transactions, wallet, report |
|
||||
| `admin/comment*` | `admin.php:150-152` | `Adm\CommentController` — product reviews, a storefront feature |
|
||||
|
||||
The three unrelated `percent` meanings were already separated in
|
||||
`MIGRATION-STATE.md`. D13 confirms that **`ConfigStatic['percent']` (wallet
|
||||
cashback) is storefront and out of scope**, while **`customers.percent`
|
||||
(→ `makingChargeOffsetPercent`) is B2B and stays in scope**.
|
||||
|
||||
Reference in New Issue
Block a user