Files
orderPRO/.paul/phases/07-pre-expansion-fixes/07-03-SUMMARY.md
2026-03-14 01:10:29 +01:00

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
ux
status-colors
ssl-hotfix
delivery-mapping-bug
phase provides
07-pre-expansion-fixes Plan 07-02 SSL verification (hotfixed here)
orderpro_to_allegro sync disabled (ok:false + UI disabled)
Orders list
source before ID, "ID:" prefix, sourceLabel()
Status badges colored by group color_hex from config
Darker form borders (#e2e8f0 →
SSL getCaBundlePath() hotfix — nullable, CAINFO only when file exists
07-04
07-05
added patterns
statusColorMap
sourceLabel
conditional-curlopt-cainfo
modified
src/Modules/Settings/AllegroStatusSyncService.php
resources/views/settings/allegro.php
src/Modules/Orders/OrdersController.php
resources/scss/shared/_ui-components.scss
public/assets/css/app.css
src/Modules/Settings/AllegroApiClient.php
src/Modules/Settings/AllegroOAuthClient.php
src/Modules/Settings/ShopproApiClient.php
src/Modules/Settings/ApaczkaApiClient.php
sourceLabel() z match expression — mapuje shoppro→shopPRO, allegro→Allegro, erli→Erli
statusColorMap() z group color_hex — status badge inline style gdy kolor dostępny, fallback na CSS klasy
SSL CURLOPT_CAINFO warunkowy — null gdy żaden CA bundle nie znaleziony, cURL używa systemowego
Status coloring: statusColorMap() + inline style background-color + color:#fff
SSL: getCaBundlePath() nullable + withSslOptions() helper (AllegroApiClient)
~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