ver. 0.269: ShopPaymentMethod refactor + Apilo keepalive
This commit is contained in:
@@ -4,6 +4,23 @@ Logi zmian z migracji na Domain-Driven Architecture. Najnowsze na gorze.
|
||||
|
||||
---
|
||||
|
||||
## ver. 0.268 (2026-02-14) - ShopPaymentMethod + Apilo token keepalive
|
||||
|
||||
- **ShopPaymentMethod** - migracja `/admin/shop_payment_method` na Domain + DI + nowe widoki
|
||||
- NOWE: `Domain\PaymentMethod\PaymentMethodRepository` (`listForAdmin`, `find`, `save`, `allActive`, `allForAdmin`, `findActiveById`, `isActive`, `getApiloPaymentTypeId`, `forTransport`)
|
||||
- NOWE: `admin\Controllers\ShopPaymentMethodController` (DI) z akcjami `list`, `edit`, `save`
|
||||
- NOWE: widoki `shop-payment-method/payment-methods-list.php` i `shop-payment-method/payment-method-edit.php`
|
||||
- UPDATE: routing i menu admin na kanoniczny URL `/admin/shop_payment_method/list/`
|
||||
- UPDATE: `admin\controls\ShopTransport`, `front\factory\ShopPaymentMethod`, `shop\PaymentMethod` przepiete na nowe repozytorium
|
||||
- CLEANUP: usuniete legacy `autoload/admin/controls/class.ShopPaymentMethod.php`, `autoload/admin/factory/class.ShopPaymentMethod.php`, `autoload/admin/view/class.ShopPaymentMethod.php`, `admin/templates/shop-payment-method/view-list.php`
|
||||
- **Integrations/Apilo** - stabilizacja tokenu i lepszy feedback
|
||||
- NOWE: automatyczne odswiezanie tokenu Apilo przed wygasnieciem (`apiloKeepalive`, refresh lead time)
|
||||
- UPDATE: cron uruchamia keepalive i odswieza konfiguracje Apilo
|
||||
- UPDATE: bardziej szczegolowe komunikaty bledow dla przyciskow integracji Apilo (co zrobic dalej)
|
||||
- Testy: **OK (280 tests, 828 assertions)**
|
||||
|
||||
---
|
||||
|
||||
## ver. 0.267 (2026-02-14) - ShopStatuses
|
||||
|
||||
- **ShopStatuses** - migracja `/admin/shop_statuses` na Domain + DI + nowe widoki
|
||||
|
||||
@@ -368,6 +368,22 @@ Promocje sklepu (modul `/admin/shop_promotion`).
|
||||
|
||||
**Aktualizacja 2026-02-13 (ver. 0.265):** dodano obsluge `date_from` (repozytorium, formularz admin, lista admin, filtr aktywnych promocji na froncie) oraz poprawke zapisu edycji promocji po `id`.
|
||||
|
||||
## pp_shop_payment_methods
|
||||
Metody platnosci sklepu (modul `/admin/shop_payment_method`).
|
||||
|
||||
| Kolumna | Opis |
|
||||
|---------|------|
|
||||
| id | PK |
|
||||
| name | Nazwa metody platnosci |
|
||||
| description | Opis metody platnosci (wyswietlany m.in. w checkout) |
|
||||
| status | Status: 1 = aktywna, 0 = nieaktywna |
|
||||
| apilo_payment_type_id | ID typu platnosci Apilo (NULL gdy brak mapowania) |
|
||||
| sellasist_payment_type_id | DEPRECATED (integracja Sellasist usunieta w ver. 0.263) |
|
||||
|
||||
**Uzywane w:** `Domain\PaymentMethod\PaymentMethodRepository`, `admin\Controllers\ShopPaymentMethodController`, `front\factory\ShopPaymentMethod`, `shop\PaymentMethod`, `admin\controls\ShopTransport`, `cron.php`
|
||||
|
||||
**Aktualizacja 2026-02-14 (ver. 0.268):** modul `/admin/shop_payment_method` korzysta z `Domain\PaymentMethod\PaymentMethodRepository` przez `admin\Controllers\ShopPaymentMethodController`. Usunieto legacy klasy `admin\controls\ShopPaymentMethod`, `admin\factory\ShopPaymentMethod`, `admin\view\ShopPaymentMethod` oraz widok `admin/templates/shop-payment-method/view-list.php`.
|
||||
|
||||
## pp_shop_apilo_settings
|
||||
Ustawienia integracji Apilo (key-value).
|
||||
|
||||
|
||||
@@ -124,6 +124,10 @@ shopPRO/
|
||||
- `pp_shop_apilo_settings` (key-value)
|
||||
- `pp_shop_shoppro_settings` (key-value)
|
||||
|
||||
### Tabele checkout
|
||||
- `pp_shop_payment_methods` - metody platnosci sklepu (mapowanie `apilo_payment_type_id`)
|
||||
- `pp_shop_transport_payment_methods` - powiazanie metod transportu i platnosci
|
||||
|
||||
Pelna dokumentacja tabel: `DATABASE_STRUCTURE.md`
|
||||
|
||||
## Konfiguracja
|
||||
@@ -222,6 +226,12 @@ autoload/
|
||||
└── front/factory/ # Legacy - stopniowo migrowane
|
||||
```
|
||||
|
||||
**Aktualizacja 2026-02-14 (ver. 0.268):**
|
||||
- Dodano modul domenowy `Domain/PaymentMethod/PaymentMethodRepository.php`.
|
||||
- Dodano kontroler DI `admin/Controllers/ShopPaymentMethodController.php`.
|
||||
- Modul `/admin/shop_payment_method/*` dziala na nowych widokach (`payment-methods-list`, `payment-method-edit`).
|
||||
- Usunieto legacy: `autoload/admin/controls/class.ShopPaymentMethod.php`, `autoload/admin/factory/class.ShopPaymentMethod.php`, `autoload/admin/view/class.ShopPaymentMethod.php`, `admin/templates/shop-payment-method/view-list.php`.
|
||||
|
||||
### Routing admin (admin\Site::route())
|
||||
1. Sprawdź mapę `$newControllers` → utwórz instancję z DI → wywołaj
|
||||
2. Jeśli nowy kontroler nie istnieje (`class_exists()` = false) → fallback na `admin\controls\`
|
||||
|
||||
@@ -148,6 +148,7 @@ grep -r "Product::getQuantity" .
|
||||
| 17 | ShopPromotion | 0.264-0.265 | listForAdmin, find, save, delete, categoriesTree |
|
||||
| 18 | ShopCoupon | 0.266 | listForAdmin, find, save, delete, categoriesTree |
|
||||
| 19 | ShopStatuses | 0.267 | listForAdmin, find, save, color picker |
|
||||
| 20 | ShopPaymentMethod | 0.268 | listForAdmin, find, save, allActive, mapowanie Apilo, DI kontroler |
|
||||
|
||||
### Product - szczegolowy status
|
||||
- ✅ getQuantity (ver. 0.238)
|
||||
@@ -166,12 +167,12 @@ grep -r "Product::getQuantity" .
|
||||
|
||||
## Kolejność refaktoryzacji (priorytet)
|
||||
|
||||
1-13: ✅ Cache, Product, Banner, Settings, Dictionaries, ProductArchive, Filemanager, Users, Pages, Integrations, ShopPromotion, ShopCoupon, ShopStatuses
|
||||
1-20: ✅ Cache, Product, Banner, Settings, Dictionaries, ProductArchive, Filemanager, Users, Pages, Integrations, ShopPromotion, ShopCoupon, ShopStatuses, ShopPaymentMethod
|
||||
|
||||
Nastepne:
|
||||
14. **Order**
|
||||
15. **Category**
|
||||
16. **ShopAttribute**
|
||||
21. **Order**
|
||||
22. **Category**
|
||||
23. **ShopAttribute**
|
||||
|
||||
## Form Edit System
|
||||
|
||||
@@ -248,6 +249,7 @@ tests/
|
||||
│ │ ├── Coupon/CouponRepositoryTest.php
|
||||
│ │ ├── Dictionaries/DictionariesRepositoryTest.php
|
||||
│ │ ├── Integrations/IntegrationsRepositoryTest.php
|
||||
│ │ ├── PaymentMethod/PaymentMethodRepositoryTest.php
|
||||
│ │ ├── Product/ProductRepositoryTest.php
|
||||
│ │ ├── Promotion/PromotionRepositoryTest.php
|
||||
│ │ ├── Settings/SettingsRepositoryTest.php
|
||||
@@ -261,12 +263,13 @@ tests/
|
||||
│ ├── ProductArchiveControllerTest.php
|
||||
│ ├── SettingsControllerTest.php
|
||||
│ ├── ShopCouponControllerTest.php
|
||||
│ ├── ShopPaymentMethodControllerTest.php
|
||||
│ ├── ShopPromotionControllerTest.php
|
||||
│ ├── ShopStatusesControllerTest.php
|
||||
│ └── UsersControllerTest.php
|
||||
└── Integration/
|
||||
```
|
||||
**Łącznie: 254 testów, 736 asercji**
|
||||
**Łącznie: 280 testów, 828 asercji**
|
||||
|
||||
Pelna dokumentacja testow: `TESTING.md`
|
||||
|
||||
|
||||
138
docs/SHOP_PAYMENT_METHOD_REFACTOR_PLAN.md
Normal file
138
docs/SHOP_PAYMENT_METHOD_REFACTOR_PLAN.md
Normal file
@@ -0,0 +1,138 @@
|
||||
# Plan Refaktoryzacji: shop_payment_method
|
||||
|
||||
Data utworzenia: 2026-02-14
|
||||
Status: ZREALIZOWANY (Etapy 1-4 zakonczone: 2026-02-14)
|
||||
|
||||
## 1. Cel
|
||||
|
||||
Pelna migracja modulu `/admin/shop_payment_method/*` do obecnego standardu projektu:
|
||||
- `Domain/*` dla logiki danych,
|
||||
- `admin/Controllers/*` z DI dla routingu,
|
||||
- widoki oparte o `components/table-list` i `components/form-edit`,
|
||||
- usuniecie legacy klas/podpiecie zaleznosci.
|
||||
|
||||
## 2. Stan obecny (inwentaryzacja)
|
||||
|
||||
Aktualny modul jest legacy i opiera sie o `grid`:
|
||||
- `autoload/admin/controls/class.ShopPaymentMethod.php`
|
||||
- `autoload/admin/factory/class.ShopPaymentMethod.php`
|
||||
- `autoload/admin/view/class.ShopPaymentMethod.php` (pusta)
|
||||
- `admin/templates/shop-payment-method/view-list.php` (grid + inline edit)
|
||||
- menu: `admin/templates/site/main-layout.php` -> `/admin/shop_payment_method/view_list/`
|
||||
|
||||
Zaleznosci wykryte poza modulem:
|
||||
- `autoload/admin/controls/class.ShopTransport.php` korzysta z `admin\\factory\\ShopPaymentMethod::payments_list()`
|
||||
- `autoload/front/factory/class.ShopPaymentMethod.php` ma bezposrednie zapytania do `pp_shop_payment_methods`
|
||||
- `autoload/shop/class.PaymentMethod.php` ma bezposrednie zapytania do `pp_shop_payment_methods`
|
||||
- `cron.php` korzysta z `front\\factory\\ShopPaymentMethod::get_apilo_payment_method_id()`
|
||||
|
||||
## 3. Zakres refaktoru
|
||||
|
||||
W zakresie:
|
||||
1. Nowe repozytorium domenowe dla metod platnosci.
|
||||
2. Nowy kontroler admin z DI i routingiem kanonicznym.
|
||||
3. Nowe widoki listy i edycji (bez legacy `grid`).
|
||||
4. Przepiecie zaleznosci (`ShopTransport`, `front\\factory\\ShopPaymentMethod`, `shop\\PaymentMethod`) na nowe API.
|
||||
5. Cleanup legacy klas/plikow zwiazanych z modulem.
|
||||
6. Testy jednostkowe + aktualizacja dokumentacji.
|
||||
|
||||
Poza zakresem (na ten etap):
|
||||
1. Refaktoryzacja calego modulu `shop_transport` (zrobimy tylko przepiecie zaleznosci dot. payment methods).
|
||||
2. Zmiany biznesowe w checkout poza zachowaniem obecnej logiki.
|
||||
|
||||
## 4. Architektura docelowa
|
||||
|
||||
Planowane nowe pliki:
|
||||
- `autoload/Domain/PaymentMethod/PaymentMethodRepository.php`
|
||||
- `autoload/admin/Controllers/ShopPaymentMethodController.php`
|
||||
- `admin/templates/shop-payment-method/payment-methods-list.php`
|
||||
- `admin/templates/shop-payment-method/payment-method-edit.php`
|
||||
|
||||
Planowane aktualizacje:
|
||||
- `autoload/admin/class.Site.php` (rejestracja `ShopPaymentMethod` w DI routerze)
|
||||
- `admin/templates/site/main-layout.php` (kanoniczny URL `/admin/shop_payment_method/list/`)
|
||||
- `autoload/admin/controls/class.ShopTransport.php` (usuniecie zaleznosci od legacy factory)
|
||||
- `autoload/front/factory/class.ShopPaymentMethod.php` (fasada delegujaca do Domain repo)
|
||||
- `autoload/shop/class.PaymentMethod.php` (fasada delegujaca do Domain repo)
|
||||
|
||||
Planowane usuniecia:
|
||||
- `autoload/admin/controls/class.ShopPaymentMethod.php`
|
||||
- `autoload/admin/factory/class.ShopPaymentMethod.php`
|
||||
- `autoload/admin/view/class.ShopPaymentMethod.php`
|
||||
- `admin/templates/shop-payment-method/view-list.php`
|
||||
|
||||
## 5. Etapy realizacji (Human In The Loop)
|
||||
|
||||
### Etap 1: Domain + testy repozytorium
|
||||
Zakres:
|
||||
- utworzenie `PaymentMethodRepository` z metodami:
|
||||
- `listForAdmin(...)`
|
||||
- `find(int $id)`
|
||||
- `save(int $id, array $data)`
|
||||
- `allActive()`
|
||||
- `findActiveById(int $id)`
|
||||
- `isActive(int $id)`
|
||||
- `getApiloPaymentTypeId(int $id)`
|
||||
- `forTransport(int $transportId)`
|
||||
- dodanie testu: `tests/Unit/Domain/PaymentMethod/PaymentMethodRepositoryTest.php`
|
||||
|
||||
Checkpoint:
|
||||
- STOP i prosba o akceptacje po wdrozeniu etapu 1.
|
||||
|
||||
### Etap 2: Admin Controller + routing + nowe widoki
|
||||
Zakres:
|
||||
- nowy `ShopPaymentMethodController` (akcje: `list`, `edit`, `save`)
|
||||
- migracja listy/edycji na `table-list` + `form-edit`
|
||||
- podpiecie w `admin\\Site` (DI factory map)
|
||||
- kompatybilnosc URL:
|
||||
- kanoniczne: `/admin/shop_payment_method/list|edit|save/`
|
||||
- aliasy legacy do decyzji po wdrozeniu (proponuje: tymczasowo wlaczyc)
|
||||
- test kontrolera: `tests/Unit/admin/Controllers/ShopPaymentMethodControllerTest.php`
|
||||
|
||||
Checkpoint:
|
||||
- STOP i prosba o akceptacje po wdrozeniu etapu 2.
|
||||
|
||||
### Etap 3: Przepiecie zaleznosci miedzymodulowych
|
||||
Zakres:
|
||||
- `ShopTransport` pobiera liste platnosci przez nowe repozytorium (bez legacy factory)
|
||||
- `front\\factory\\ShopPaymentMethod` jako fasada do repozytorium domenowego
|
||||
- `shop\\PaymentMethod` jako fasada do repozytorium domenowego
|
||||
- zachowanie dotychczasowych podpisow metod (BC)
|
||||
|
||||
Checkpoint:
|
||||
- STOP i prosba o akceptacje po wdrozeniu etapu 3.
|
||||
|
||||
### Etap 4: Cleanup + finalne testy + dokumentacja
|
||||
Zakres:
|
||||
- usuniecie legacy klas/plikow dla `shop_payment_method`
|
||||
- uruchomienie testow:
|
||||
- najpierw targetowane testy PaymentMethod,
|
||||
- potem caly suite (`composer test` lub `./test.ps1`)
|
||||
- aktualizacja dokumentacji:
|
||||
- `docs/DATABASE_STRUCTURE.md`
|
||||
- `docs/PROJECT_STRUCTURE.md`
|
||||
- `docs/REFACTORING_PLAN.md`
|
||||
- `docs/CHANGELOG.md`
|
||||
- `docs/TESTING.md`
|
||||
|
||||
Checkpoint:
|
||||
- STOP i prosba o finalna akceptacje przed etapem release (zip/commit/push wg procedury KONIEC PRACY, jesli zlecisz).
|
||||
|
||||
## 6. Ryzyka i kontrola regresji
|
||||
|
||||
1. Ryzyko: utrata kompatybilnosci URL (`view_list`).
|
||||
Kontrola: tymczasowe aliasy lub redirect + test akcji.
|
||||
|
||||
2. Ryzyko: regresja checkout przy pobieraniu metod platnosci.
|
||||
Kontrola: zachowanie podpisow metod we `front\\factory\\ShopPaymentMethod` i `shop\\PaymentMethod`, testy repozytorium.
|
||||
|
||||
3. Ryzyko: `ShopTransport` przestanie pokazywac metody platnosci.
|
||||
Kontrola: jawne przepiecie zaleznosci i test manualny widoku edycji transportu.
|
||||
|
||||
## 7. Kryteria akceptacji
|
||||
|
||||
1. `/admin/shop_payment_method/list/` dziala na nowym kontrolerze i nowym widoku.
|
||||
2. `/admin/shop_payment_method/edit/id={id}` i zapis dzialaja bez `grid`.
|
||||
3. Brak zaleznosci od legacy `admin\\controls\\ShopPaymentMethod` i `admin\\factory\\ShopPaymentMethod`.
|
||||
4. `ShopTransport`, frontend checkout i `cron.php` dzialaja na niezmienionych API publicznych.
|
||||
5. Nowe testy przechodza, a pelny suite nie ma regresji.
|
||||
@@ -33,10 +33,10 @@ Alternatywnie (Git Bash):
|
||||
|
||||
## Aktualny stan suite
|
||||
|
||||
Ostatnio zweryfikowano: 2026-02-13
|
||||
Ostatnio zweryfikowano: 2026-02-14
|
||||
|
||||
```text
|
||||
OK (254 tests, 736 assertions)
|
||||
OK (280 tests, 828 assertions)
|
||||
```
|
||||
|
||||
## Struktura testow
|
||||
@@ -52,6 +52,7 @@ tests/
|
||||
| | |-- Coupon/CouponRepositoryTest.php
|
||||
| | |-- Dictionaries/DictionariesRepositoryTest.php
|
||||
| | |-- Integrations/IntegrationsRepositoryTest.php
|
||||
| | |-- PaymentMethod/PaymentMethodRepositoryTest.php
|
||||
| | |-- Product/ProductRepositoryTest.php
|
||||
| | |-- Promotion/PromotionRepositoryTest.php
|
||||
| | |-- Settings/SettingsRepositoryTest.php
|
||||
@@ -65,6 +66,7 @@ tests/
|
||||
| |-- ProductArchiveControllerTest.php
|
||||
| |-- SettingsControllerTest.php
|
||||
| |-- ShopCouponControllerTest.php
|
||||
| |-- ShopPaymentMethodControllerTest.php
|
||||
| |-- ShopPromotionControllerTest.php
|
||||
| |-- ShopStatusesControllerTest.php
|
||||
| `-- UsersControllerTest.php
|
||||
|
||||
Reference in New Issue
Block a user