ver. 0.296: REST API for ordersPRO — orders management, dictionaries, API key auth
- New API layer: ApiRouter, OrdersApiController, DictionariesApiController - Orders API: list (with filters/pagination/updated_since), details, change status, set paid/unpaid - Dictionaries API: order statuses, transport methods, payment methods - X-Api-Key authentication via pp_settings.api_key - OrderRepository: listForApi(), findForApi(), touchUpdatedAt() - updated_at column on pp_shop_orders for polling support - api.php: skip session for API requests, route to ApiRouter - SettingsController: api_key field in system tab - 30 new tests (666 total, 1930 assertions) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -72,6 +72,20 @@ Newsletter, Search, ShopBasket, ShopClient, ShopCoupon, ShopOrder, ShopProducer,
|
||||
### Widoki (`front\Views\`) — 11 klas statycznych
|
||||
Articles, Banners, Languages, Menu, Newsletter, Scontainers, ShopCategory, ShopClient, ShopPaymentMethod, ShopProduct, ShopSearch
|
||||
|
||||
## Warstwa API (`autoload/api/`)
|
||||
|
||||
REST API dla ordersPRO. Entry point: `api.php`. Stateless (bez sesji), autentykacja przez `X-Api-Key` header.
|
||||
|
||||
### Router: `api\ApiRouter`
|
||||
- `handle()` — autentykacja → routing → dispatch
|
||||
- Helpery statyczne: `sendSuccess()`, `sendError()`, `getJsonBody()`, `requireMethod()`
|
||||
|
||||
### Kontrolery (`api\Controllers\`)
|
||||
- `OrdersApiController` — lista, szczegoly, zmiana statusu, platnosc (5 akcji)
|
||||
- `DictionariesApiController` — statusy, transporty, metody platnosci (3 akcje)
|
||||
|
||||
Dokumentacja: `docs/API.md`
|
||||
|
||||
## Warstwa wspoldzielona (`autoload/Shared/`)
|
||||
|
||||
| Klasa | Opis |
|
||||
@@ -106,7 +120,7 @@ ProductRepository::productSetsWhenAddToBasket:{id} — zestawy "kupowane r
|
||||
|------|------|
|
||||
| `index.php` | Frontend — autoload, sesja, DB, routing (`front\App`), layout (`front\LayoutEngine`), DOM post-processing |
|
||||
| `ajax.php` | Frontend AJAX — koszyk, transport, kontakt |
|
||||
| `api.php` | REST API (Ekomi CSV) |
|
||||
| `api.php` | REST API (ordersPRO + Ekomi CSV) — router: `\api\ApiRouter`, kontrolery: `\api\Controllers\` |
|
||||
| `admin/index.php` | Admin — autoload, sesja, DB, routing (`admin\App`) |
|
||||
| `admin/ajax.php` | Admin AJAX |
|
||||
| `cron.php` | CRON: Apilo sync (ceny/stany co 10min, cennik co 1h, retry queue) |
|
||||
|
||||
Reference in New Issue
Block a user