- Kolorowe badge'e statusow dostawy w tabelach paczek (show.php + prepare.php) - Link sledzenia z carrier detection (InPost, Apaczka, Orlen, Allegro, Google fallback) - Sekcja Status dostawy w boksie Platnosc i wysylka - Ustawienie interwalu trackingu crona (5-120 min) w zakladce Ustawienia - Tekstowe mapowania statusow Apaczka API (NEW, CONFIRMED, etc.) - Fix: use-statements ApaczkaShipmentService (pre-existing bug) - Fix: pickup date normalization (next day po 16:00) - Fix: przycisk Pobierz etykiete (POST zamiast link do prepare) Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
5.0 KiB
5.0 KiB
PAUL Handoff
Date: 2026-03-23 Status: paused — mid-APPLY Phase 28
READ THIS FIRST
You have no prior context. This document tells you everything.
Project: orderPRO — wielokanałowe zarządzanie zamówieniami i przesyłkami Core value: Sprzedawca obsługuje zamówienia ze wszystkich kanałów i nadaje przesyłki bez przełączania się między platformami.
Current State
Milestone: v1.2 Śledzenie przesyłek Phase: [2] of [2] — Shipment Tracking UI + Settings Plan: 28-01 — APPLY in progress (Task 2 checkpoint pending, Task 3 not started)
Loop Position:
PLAN ──▶ APPLY ──▶ UNIFY
✓ ◐ ○ [APPLY mid-execution, checkpoint pending]
What Was Done This Session
Phase 27 — Shipment Tracking Backend (COMPLETE ✓)
- Migracja DB: 3 kolumny (delivery_status, delivery_status_raw, delivery_status_updated_at) + indeks
- DeliveryStatus class z mapowaniami statusów (30+ InPost, 11 Apaczka, 7 Allegro)
- ShipmentTrackingInterface + 3 implementacje (InpostTrackingService, ApaczkaTrackingService, AllegroTrackingService)
- ShipmentTrackingRegistry + ShipmentTrackingHandler cron (15 min interwał)
- CronHandlerFactory rozszerzony o shipment_tracking_sync
- Commit:
228c0e9
Phase 28 — Shipment Tracking UI (IN PROGRESS)
- Task 1 DONE: SCSS badge'e statusów + DeliveryStatus::trackingUrl() z carrier detection
- Task 2 PARTIALLY DONE: Badge'e w show.php i prepare.php, link śledzenia, boks Płatność i wysyłka
- Task 3 NOT STARTED: Ustawienia interwału crona
Dodatkowe poprawki poza planem:
- Fix: Przycisk Pobierz etykietę w show.php — zmieniony z linku do prepare na formularz POST z bezpośrednim downloadem PDF
- Fix: delivery_status "delivered" → "confirmed" — migracja błędnie ustawiała label_ready jako doręczona; naprawiono w DB (3 rows) i w pliku migracji
- Fix: carrier_id dla Apaczka — uzupełniono z tabeli carrier_delivery_method_mappings (13 rows); dodano fallback w ApaczkaShipmentService
- Fix: Orlen Paczka URL — poprawiony na
www.orlenpaczka.pl/sledz-paczke/?numer= - Fix: Google fallback — gdy carrier nieznany, link śledzenia kieruje do Google search
- Nowa metoda: ShipmentPackageRepository::resolveCarrierName() — lookup carrier z carrier_delivery_method_mappings
What's In Progress
- Checkpoint Task 2 — user testuje UI badge'ów i linków śledzenia, jeszcze nie zatwierdził "approved"
- Task 3 — ustawienia interwału trackingu w cronie — nie rozpoczęty
What's Next
Immediate: Uzyskać checkpoint approval dla Task 2 (UI badge'y), potem wykonać Task 3 (cron interval settings)
After that:
- Sonar scan + UNIFY Phase 28
- PLAN Phase 29 — UI zarządzania mapowaniem statusów (user request)
- Dodać fazę 29 do ROADMAP
Decisions Made
| Decision | Rationale |
|---|---|
| Google search jako fallback tracking URL | Gdy carrier_id nieznany — uniwersalne, zawsze działa |
| carrier_delivery_method_mappings jako źródło carrier_id | API Apaczki nie zwraca usług; tabela mapowań jest konfigurowana przez usera |
| Usunięto pattern matching po numerze śledzenia | Zawodne — 13-cyfrowy numer może być DPD, Orlen lub inny |
| Przycisk Pobierz w show.php zmieniony na POST form | Pre-existing bug — link do prepare zamiast bezpośredniego downloadu |
Key Files
| File | Purpose |
|---|---|
.paul/STATE.md |
Live project state |
.paul/ROADMAP.md |
Phase overview |
.paul/phases/28-shipment-tracking-ui/28-01-PLAN.md |
Current plan |
.paul/phases/27-shipment-tracking-backend/27-01-SUMMARY.md |
Phase 27 summary |
src/Modules/Shipments/DeliveryStatus.php |
Status mapping + trackingUrl() |
resources/views/orders/show.php |
Badge'e + link śledzenia w zamówieniu |
resources/views/shipments/prepare.php |
Badge'e + link śledzenia w przygotowaniu |
DOCS/SHIPMENT_TRACKING_STATUSES.md |
Dokumentacja statusów API |
Modified Files (uncommitted)
src/Modules/Shipments/DeliveryStatus.php— trackingUrl() z carrier detection + Google fallbacksrc/Modules/Shipments/ShipmentPackageRepository.php— resolveCarrierName()src/Modules/Shipments/ApaczkaShipmentService.php— fallback carrier_id z mappingsresources/views/orders/show.php— kolumna Status dostawy, badge, link, fix Pobierzresources/views/shipments/prepare.php— kolumna Status dostawy, badge, linkresources/scss/modules/_delivery-status.scss— style badge'ówresources/scss/app.scss— @use delivery-statuspublic/assets/css/app.css— rebuiltdatabase/migrations/20260323_000060_*— fix initial status values
Resume Instructions
- Read
.paul/STATE.mdfor latest position - Check this handoff file
- Run
/paul:resumeor continue APPLY manually:- Get checkpoint approval for Task 2 (badge'e UI)
- Execute Task 3 (cron interval settings in settings/cron.php)
- Then sonar +
/paul:unify
Handoff created: 2026-03-23