5.8 KiB
5.8 KiB
phase, plan, subsystem, tags, requires, provides, affects, tech-stack, key-files, key-decisions, patterns-established, duration, started, completed
| phase | plan | subsystem | tags | requires | provides | affects | tech-stack | key-files | key-decisions | patterns-established | duration | started | completed | |||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 07-pre-expansion-fixes | 03 | ui, security |
|
|
|
|
|
|
|
|
~20min | 2026-03-14 | 2026-03-14 |
Phase 7 Plan 03: UX Fixes Summary
Disable orderpro_to_allegro sync, source/ID swap w liście zamówień, kolorowanie statusów, ciemniejsze bordery + hotfix SSL CA bundle
Performance
| Metric | Value |
|---|---|
| Duration | ~20min |
| Started | 2026-03-14 |
| Completed | 2026-03-14 |
| Tasks | 3 completed (+ checkpoint) |
| Files modified | 10 |
Acceptance Criteria Results
| Criterion | Status | Notes |
|---|---|---|
| AC-1: orderpro_to_allegro nie daje false-positive | Pass | ok: false w early return |
| AC-2: Opcja UI disabled | Pass | disabled + "(wkrótce)" na option |
| AC-3: Source przed ID + prefix "ID:" | Pass | sourceLabel() + swap kolejności spanów |
| AC-4: Statusy kolorowane | Pass | statusColorMap() → inline style background-color |
| AC-5: Ciemniejsze obramowanie | Pass | --c-border: #e2e8f0 → #b0bec5, CSS rebuilt |
Accomplishments
- orderpro_to_allegro sync zwraca ok:false (nie ok:true), opcja UI disabled z "(wkrótce)"
- Lista zamówień: source (Allegro/shopPRO/Erli) przed ID z prefixem "ID:"
- Statusy kolorowane kolorem grupy z konfiguracji, fallback na CSS klasy dla niezamapowanych
- Ciemniejsze obramowanie formularzy w całej aplikacji
- Hotfix SSL: getCaBundlePath() zwraca null gdy żaden CA bundle nie znaleziony — cURL używa systemowego domyślnego, eliminuje błąd na serwerze
Files Created/Modified
| File | Change | Purpose |
|---|---|---|
src/Modules/Settings/AllegroStatusSyncService.php |
Modified | ok:true → ok:false dla orderpro_to_allegro |
resources/views/settings/allegro.php |
Modified | disabled + "(wkrótce)" na opcji sync direction |
src/Modules/Orders/OrdersController.php |
Modified | sourceLabel(), statusColorMap(), statusBadge() z kolorem, swap source/ID |
resources/scss/shared/_ui-components.scss |
Modified | --c-border: #b0bec5 |
public/assets/css/app.css |
Rebuilt | CSS z nowym border color |
src/Modules/Settings/AllegroApiClient.php |
Modified | getCaBundlePath() nullable + withSslOptions() |
src/Modules/Settings/AllegroOAuthClient.php |
Modified | getCaBundlePath() nullable, warunkowy CAINFO |
src/Modules/Settings/ShopproApiClient.php |
Modified | getCaBundlePath() nullable, warunkowy CAINFO |
src/Modules/Settings/ApaczkaApiClient.php |
Modified | getCaBundlePath() nullable, warunkowy CAINFO |
Decisions Made
| Decision | Rationale | Impact |
|---|---|---|
| sourceLabel() match expression | Czytelne mapowanie 3 znanych źródeł + ucfirst fallback | Łatwe do rozszerzenia o nowe źródła |
| Status color inline style | group color_hex z konfiguracji; brak kolumny color w wierszu zamówienia | Nie wymaga migracji, kolor pochodzi z istniejącej tabeli order_status_groups |
| SSL CAINFO warunkowy | Serwer produkcyjny nie ma lokalnych CA bundle paths, cURL ma wbudowany systemowy | Eliminuje błąd "error setting certificate verify locations" |
Deviations from Plan
Summary
| Type | Count | Impact |
|---|---|---|
| Auto-fixed | 1 | Critical — SSL hotfix z planu 07-02 |
| Scope additions | 0 | - |
| Deferred | 1 | Pre-existing bug |
Auto-fixed Issues
1. SSL CA bundle path error na serwerze
- Found during: Checkpoint verification (user report)
- Issue: getCaBundlePath() zwracał hardcoded path który nie istnieje na serwerze → cURL error
- Fix: getCaBundlePath() zwraca null gdy brak pliku; CURLOPT_CAINFO ustawiany warunkowo
- Files: 4 ApiClient klasy
- Verification: User potwierdzi po deploy
Deferred Items
- Pre-existing: Pole "Szukaj..." w mapowaniu form dostawy Allegro — JS
attachSelectFilter()tworzy input search dla InPost/Apaczka selectów, layout myląco wygląda jakby należał do wiersza powyżej
Issues Encountered
| Issue | Resolution |
|---|---|
| SSL error na serwerze produkcyjnym | getCaBundlePath() → nullable, CAINFO warunkowy |
Next Phase Readiness
Ready:
- UX fixes wdrożone, lista zamówień czytelniejsza
- Plan 07-04 (testy) niezależny
Concerns:
- Delivery mapping "Szukaj..." layout — pre-existing, do naprawy osobno
Blockers:
- None
Phase: 07-pre-expansion-fixes, Plan: 03 Completed: 2026-03-14