Files
orderPRO/.paul/phases/48-email-template-shipment-variables/48-01-SUMMARY.md
2026-03-28 15:04:35 +01:00

6.2 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
48-email-template-shipment-variables 01 ui
email-templates
shipment-tracking
variable-resolver
phase provides
14-email-templates bazowy mechanizm zmiennych i edytor Quill
phase provides
27-shipment-tracking-backend model paczek i generator linkow sledzenia
zmienne `{{przesylka.numer}}` i `{{przesylka.link_sledzenia}}` w szablonach e-mail
resolver danych paczki oparty o `shipment_packages` + `DeliveryStatus::trackingUrl`
email-sending
settings-email-templates
shipments
added patterns
provider-aware tracking link w mapowaniu zmiennych e-mail
created modified
.paul/phases/48-email-template-shipment-variables/48-01-SUMMARY.md
src/Modules/Email/VariableResolver.php
src/Modules/Settings/EmailTemplateController.php
resources/views/settings/email-templates.php
resources/scss/app.scss
public/assets/css/app.css
routes/web.php
src/Modules/Cron/CronHandlerFactory.php
DOCS/ARCHITECTURE.md
DOCS/TECH_CHANGELOG.md
DOCS/todo.md
Dodanie zmiennych przesylki bez zmian schematu DB - dane pobierane z najnowszej paczki
Link sledzenia liczony centralnie przez DeliveryStatus::trackingUrl(provider, tracking, carrier)
Nowe zmienne e-mail powinny miec preview (`SAMPLE_DATA`) i wpis w katalogu VARIABLE_GROUPS
45min 2026-03-28T15:05:00+01:00 2026-03-28T15:43:37+01:00

Phase 48 Plan 01: Email Template Shipment Variables Summary

Dodano obsluge numeru przesylki i linku sledzenia w szablonach e-mail wraz z poprawka UI dropdownu, aby lista zmiennych nie byla ucinana.

Performance

Metric Value
Duration 45min
Started 2026-03-28T15:05:00+01:00
Completed 2026-03-28T15:43:37+01:00
Tasks 3 completed + 1 checkpoint
Files modified 10

Acceptance Criteria Results

Criterion Status Notes
AC-1: Szablony e-mail obsluguja nowe zmienne przesylki Pass VARIABLE_GROUPS i SAMPLE_DATA rozszerzone o przesylka.*; widoczne w pickerze
AC-2: Resolver pobiera dane przesylki z zamowienia Pass VariableResolver pobiera najnowsza paczke przez findLatestByOrderId()
AC-3: Link sledzenia jest zalezny od provider/carrier Pass Link liczony przez DeliveryStatus::trackingUrl(...); fallback do pustego stringu
AC-4: Dokumentacja odzwierciedla nowy kontrakt zmiennych Pass Zaktualizowano DOCS/ARCHITECTURE.md, DOCS/TECH_CHANGELOG.md, DOCS/todo.md

Accomplishments

  • Dodano dwie nowe zmienne szablonow e-mail: numer paczki i link sledzenia.
  • Podlaczono resolver do danych paczki i logiki linkow provider/carrier.
  • Naprawiono clipping dropdownu Wstaw zmienna (styl overflow + z-index).

Files Created/Modified

File Change Purpose
.paul/phases/48-email-template-shipment-variables/48-01-SUMMARY.md Created Podsumowanie wykonania planu
src/Modules/Settings/EmailTemplateController.php Modified Katalog zmiennych i dane preview (przesylka.*)
src/Modules/Email/VariableResolver.php Modified Pobranie najnowszej paczki i mapowanie zmiennych przesylki
routes/web.php Modified Wstrzykniecie ShipmentPackageRepository do VariableResolver
src/Modules/Cron/CronHandlerFactory.php Modified Wstrzykniecie ShipmentPackageRepository do VariableResolver w cronie
resources/views/settings/email-templates.php Modified Utrzymanie renderu zmiennych + usuniecie tymczasowego fallbacku
resources/scss/app.scss Modified Naprawa ucinania panelu zmiennych (overflow: visible, wyzszy z-index)
public/assets/css/app.css Modified Build CSS po zmianie SCSS
DOCS/ARCHITECTURE.md Modified Opis nowych zmiennych przesylki i fallbackow
DOCS/TECH_CHANGELOG.md Modified Log techniczny Phase 48
DOCS/todo.md Modified Oznaczenie zakresu jako wykonany

Decisions Made

Decision Rationale Impact
Resolver zmiennych pobiera ostatnia paczke po order_id Najprostszy i stabilny punkt prawdy dla numeru/linku Spójne podstawianie danych w send/preview
Uzycie DeliveryStatus::trackingUrl zamiast duplikacji mapowania URL Jedno miejsce mapowania provider/carrier Mniejsza duplikacja i latwiejsze utrzymanie
Poprawka UI dropdownu przez CSS (overflow, z-index) Problem byl wizualny (clipping), nie danych Picker zmiennych widoczny dla uzytkownika

Deviations from Plan

Summary

Type Count Impact
Auto-fixed 1 Niewielki, UX-only
Scope additions 1 Dodatkowa poprawka CSS konieczna do uzycia funkcji
Deferred 0 None

Total impact: Funkcjonalnosc dostarczona zgodnie z celem, z dodatkowa poprawka prezentacji panelu zmiennych.

Auto-fixed Issues

1. UI clipping panelu zmiennych

  • Found during: checkpoint manual verify
  • Issue: Dropdown Wstaw zmienna byl ucinany przez kolejny element formularza.
  • Fix: Zmieniono overflow kontenera edytora na visible oraz podniesiono z-index panelu.
  • Files: resources/scss/app.scss, public/assets/css/app.css
  • Verification: Potwierdzenie manualne uzytkownika ("Jst ok")

Deferred Items

None.

Verification Results

  • C:\xampp\php\php.exe -l src/Modules/Settings/EmailTemplateController.php OK
  • C:\xampp\php\php.exe -l src/Modules/Email/VariableResolver.php OK
  • C:\xampp\php\php.exe -l src/Modules/Email/EmailSendingService.php OK
  • C:\xampp\php\php.exe -l src/Modules/Cron/CronHandlerFactory.php OK
  • C:\xampp\php\php.exe -l resources/views/settings/email-templates.php OK
  • C:\xampp\php\php.exe -l routes/web.php OK
  • Manual checkpoint: potwierdzony przez uzytkownika

Skill Audit

  • Required sonar-scanner: not invoked in tym APPLY (gap zarejestrowany w STATE.md)

Next Phase Readiness

Ready:

  • Modul e-mail ma komplet zmiennych przesylki do szablonow i preview.
  • UI picker zmiennych jest czytelny i nieuciety.

Concerns:

  • Brak uruchomionego sonar-scanner dla tej petli - do nadrobienia przy najblizszym cyklu jakosci.

Blockers:

  • None.

Phase: 48-email-template-shipment-variables, Plan: 01 Completed: 2026-03-28