update
This commit is contained in:
@@ -29,6 +29,7 @@ Wersja mobilna aplikacji, modul po module. Cel: pelna uzywalnosc orderPRO na tel
|
||||
| 66 | Allegro Delivery Tracking | 2/2 | Complete |
|
||||
| 67 | PAUL Codex Executor | 1/1 | Complete |
|
||||
| 68 | Code Deduplication Refactor | 0/2 | Planning |
|
||||
| 69 | Allegro Tracking English Statuses | 1/1 | Complete |
|
||||
| TBD | Mobile Orders List | - | Not started |
|
||||
| TBD | Mobile Order Details | - | Not started |
|
||||
| TBD | Mobile Settings | - | Not started |
|
||||
@@ -352,7 +353,4 @@ Archive: `.paul/milestones/v0.1-ROADMAP.md`
|
||||
|
||||
---
|
||||
*Roadmap created: 2026-03-12*
|
||||
*Last updated: 2026-03-28 - v2.2 completed (phase 50)*
|
||||
|
||||
|
||||
|
||||
*Last updated: 2026-04-04 - phase 69 unified (Allegro Tracking English Statuses)*
|
||||
|
||||
@@ -2,37 +2,37 @@
|
||||
|
||||
## Project Reference
|
||||
|
||||
See: .paul/PROJECT.md (updated 2026-04-03)
|
||||
See: .paul/PROJECT.md (updated 2026-04-04)
|
||||
|
||||
**Core value:** Sprzedawca moze obslugiwac zamowienia ze wszystkich kanalow sprzedazy i nadawac przesylki bez przelaczania sie miedzy platformami.
|
||||
**Current focus:** Milestone v3.0 — Phase 68 plan 01 complete, ready for next PLAN
|
||||
**Current focus:** Milestone v3.0 - Phase 69 plan 01 unified, ready for next PLAN
|
||||
|
||||
## Current Position
|
||||
|
||||
Milestone: v3.0 Mobile Responsive — In progress
|
||||
Phase: 68 (Code Deduplication Refactor) — In progress
|
||||
Plan: 68-01 complete
|
||||
Status: Loop complete — plan 68-01 done, ready for next PLAN
|
||||
Last activity: 2026-04-03 — UNIFY closed for 68-01
|
||||
Milestone: v3.0 Mobile Responsive - In progress
|
||||
Phase: 69 (Allegro Tracking English Statuses) - Complete
|
||||
Plan: 69-01 unified
|
||||
Status: Loop complete, ready for next PLAN
|
||||
Last activity: 2026-04-04 - Unified .paul/phases/69-allegro-tracking-english-statuses/69-01-PLAN.md
|
||||
|
||||
Progress:
|
||||
- Milestone: [######░░░░] ~68%
|
||||
- Phase 68: [#####░░░░░] 50%
|
||||
- Milestone: [#######...] ~70%
|
||||
- Phase 69: [##########] 100%
|
||||
|
||||
## Loop Position
|
||||
|
||||
Current loop state:
|
||||
```
|
||||
PLAN ──▶ APPLY ──▶ UNIFY
|
||||
✓ ✓ ✓ [Loop complete - ready for next PLAN]
|
||||
PLAN --> APPLY --> UNIFY
|
||||
✓ ✓ ✓ [Loop complete - ready for next PLAN]
|
||||
```
|
||||
|
||||
## Session Continuity
|
||||
|
||||
Last session: 2026-04-03
|
||||
Stopped at: Phase 68 plan 01 complete
|
||||
Next action: /paul:plan for 68-02 (remaining duplications: validateCsrf, isActive filter)
|
||||
Resume file: .paul/phases/68-code-deduplication-refactor/68-01-SUMMARY.md
|
||||
Last session: 2026-04-04
|
||||
Stopped at: Plan 69-01 unified
|
||||
Next action: Run $paul-plan for the next prioritized phase
|
||||
Resume file: .paul/phases/69-allegro-tracking-english-statuses/69-01-SUMMARY.md
|
||||
|
||||
## Git State
|
||||
|
||||
|
||||
172
.paul/phases/69-allegro-tracking-english-statuses/69-01-PLAN.md
Normal file
172
.paul/phases/69-allegro-tracking-english-statuses/69-01-PLAN.md
Normal file
@@ -0,0 +1,172 @@
|
||||
---
|
||||
phase: 69-allegro-tracking-english-statuses
|
||||
plan: 01
|
||||
type: execute
|
||||
wave: 1
|
||||
depends_on: []
|
||||
files_modified:
|
||||
- src/Modules/Shipments/DeliveryStatus.php
|
||||
- src/Modules/Shipments/AllegroTrackingService.php
|
||||
- tests/Unit/DeliveryStatusTest.php
|
||||
- DOCS/DB_SCHEMA.md
|
||||
- DOCS/ARCHITECTURE.md
|
||||
- DOCS/TECH_CHANGELOG.md
|
||||
autonomous: true
|
||||
---
|
||||
|
||||
<objective>
|
||||
## Goal
|
||||
Naprawic normalizacje statusow Allegro Delivery z edge API, aby angielskie opisy (np. `Parcel is awaiting pick-up`, `Parcel has been delivered`) nie konczyly jako `unknown`.
|
||||
|
||||
## Purpose
|
||||
Status dostawy w orderPRO musi byc wiarygodny dla obslugi zamowien i automatyzacji. Obecny fallback obsluguje glownie opisy PL i gubi realne statusy EN.
|
||||
|
||||
## Output
|
||||
- Rozszerzone mapowanie/fallback statusow w `DeliveryStatus` dla opisow EN z Allegro edge API.
|
||||
- Lekki test jednostkowy dla normalizacji i fallbacku opisow Allegro.
|
||||
- Aktualizacja dokumentacji technicznej (schema/architektura/changelog) po wdrozeniu hotfixu.
|
||||
</objective>
|
||||
|
||||
<context>
|
||||
## Project Context
|
||||
@.paul/PROJECT.md
|
||||
@.paul/ROADMAP.md
|
||||
@.paul/STATE.md
|
||||
|
||||
## Prior Work
|
||||
@.paul/phases/66-allegro-delivery-tracking/66-01-SUMMARY.md
|
||||
@.paul/phases/66-allegro-delivery-tracking/66-02-SUMMARY.md
|
||||
|
||||
## Source Files
|
||||
@src/Modules/Shipments/DeliveryStatus.php
|
||||
@src/Modules/Shipments/AllegroTrackingService.php
|
||||
@src/Modules/Cron/ShipmentTrackingHandler.php
|
||||
@DOCS/DB_SCHEMA.md
|
||||
@DOCS/ARCHITECTURE.md
|
||||
@DOCS/TECH_CHANGELOG.md
|
||||
</context>
|
||||
|
||||
<skills>
|
||||
## Required Skills (from SPECIAL-FLOWS.md)
|
||||
|
||||
| Skill | Priority | When to Invoke | Loaded? |
|
||||
|-------|----------|----------------|---------|
|
||||
| `sonar-scanner` | required | Po APPLY, przed UNIFY | o |
|
||||
| `/feature-dev` | optional | Implementacja hotfixu trackingu | o |
|
||||
| `/code-review` | optional | Przed UNIFY | o |
|
||||
|
||||
**BLOCKING:** Required skills MUST be loaded before APPLY proceeds.
|
||||
|
||||
## Skill Invocation Checklist
|
||||
- [ ] `sonar-scanner` uruchomiony po APPLY
|
||||
- [ ] (opcjonalnie) `/feature-dev`
|
||||
- [ ] (opcjonalnie) `/code-review`
|
||||
|
||||
</skills>
|
||||
|
||||
<acceptance_criteria>
|
||||
|
||||
## AC-1: Angielskie statusy Allegro nie wracaja jako unknown
|
||||
```gherkin
|
||||
Given paczka `allegro_wza` otrzymuje z edge API opis po angielsku
|
||||
When `AllegroTrackingService::fetchAllegroEdgeStatus()` normalizuje status
|
||||
Then wynik `status` jest rozpoznany (np. `ready_for_pickup`, `delivered`)
|
||||
And nie jest `unknown` dla znanych opisow EN
|
||||
```
|
||||
|
||||
## AC-2: Fallback nadal dziala dla opisow dotychczasowych
|
||||
```gherkin
|
||||
Given opisy statusow z mapy/sluga istniejacej w systemie (PL i dotychczasowe warianty)
|
||||
When status jest normalizowany przez `DeliveryStatus`
|
||||
Then wynik pozostaje zgodny z aktualnym kontraktem statusow
|
||||
And nie ma regresji dla inpost/apaczka/allegro_wza
|
||||
```
|
||||
|
||||
## AC-3: Dokumentacja techniczna odzwierciedla hotfix
|
||||
```gherkin
|
||||
Given wdrozenie zmiany mapowania statusow Allegro edge
|
||||
When aktualizacja kodu jest zakonczona
|
||||
Then `DOCS/DB_SCHEMA.md`, `DOCS/ARCHITECTURE.md` i `DOCS/TECH_CHANGELOG.md` zawieraja wpis o tej zmianie
|
||||
And wpisy jasno opisuja brak zmian schematu DB
|
||||
```
|
||||
|
||||
</acceptance_criteria>
|
||||
|
||||
<tasks>
|
||||
|
||||
<task type="auto">
|
||||
<name>Task 1: Rozszerzyc normalizacje statusow EN dla Allegro edge</name>
|
||||
<files>src/Modules/Shipments/DeliveryStatus.php, src/Modules/Shipments/AllegroTrackingService.php</files>
|
||||
<action>
|
||||
Zaktualizuj `DeliveryStatus` tak, aby opisy EN z Allegro edge (w tym `Parcel is awaiting pick-up`, `Parcel has been delivered`) byly mapowane do statusow biznesowych.
|
||||
Dopuszczalne podejscia: rozszerzenie mapy slugow EN, poprawa `guessStatusFromDescription()` dla EN, lub oba.
|
||||
Zachowaj obecny kontrakt zwracanych statusow (`unknown|created|...`), bez zmiany interfejsu serwisu trackingu.
|
||||
Unikaj zmian w logice crona i bazie danych - to hotfix normalizacji.
|
||||
</action>
|
||||
<verify>Manual check: uruchomic `DeliveryStatus::slugify/normalize/guess` dla statusow EN oraz sprawdzic, ze `Parcel is awaiting pick-up` -> `ready_for_pickup`, `Parcel has been delivered` -> `delivered`.</verify>
|
||||
<done>AC-1 satisfied, AC-2 satisfied</done>
|
||||
</task>
|
||||
|
||||
<task type="auto">
|
||||
<name>Task 2: Dodac test jednostkowy dla mapowania Allegro edge</name>
|
||||
<files>tests/Unit/DeliveryStatusTest.php</files>
|
||||
<action>
|
||||
Dodaj testy jednostkowe obejmujace co najmniej:
|
||||
- slug+normalize dla opisu EN z Allegro edge,
|
||||
- fallback `guessStatusFromDescription()` dla EN,
|
||||
- zachowanie bez regresji dla przykladowego statusu PL lub istniejacego sluga.
|
||||
Test ma byc szybki, bez dostepu do sieci i bez zaleznosci od bazy.
|
||||
</action>
|
||||
<verify>`C:\\xampp\\php\\php.exe vendor\\bin\\phpunit --filter DeliveryStatusTest` przechodzi.</verify>
|
||||
<done>AC-1 satisfied, AC-2 satisfied</done>
|
||||
</task>
|
||||
|
||||
<task type="auto">
|
||||
<name>Task 3: Zaktualizowac dokumentacje techniczna po hotfixie</name>
|
||||
<files>DOCS/DB_SCHEMA.md, DOCS/ARCHITECTURE.md, DOCS/TECH_CHANGELOG.md</files>
|
||||
<action>
|
||||
Dodaj wpisy opisujace hotfix mapowania statusow Allegro edge (EN -> statusy biznesowe).
|
||||
W DB schema zaznacz jednoznacznie, ze zmiana nie modyfikuje tabel/kolumn/indeksow.
|
||||
W architekturze dopisz, jak dziala fallback EN w `DeliveryStatus`.
|
||||
W changelogu opisz co i dlaczego zostalo poprawione.
|
||||
</action>
|
||||
<verify>Przeglad diffu dokumentacji: wszystkie 3 pliki zaktualizowane, opisy spojne z implementacja.</verify>
|
||||
<done>AC-3 satisfied</done>
|
||||
</task>
|
||||
|
||||
</tasks>
|
||||
|
||||
<boundaries>
|
||||
|
||||
## DO NOT CHANGE
|
||||
- database/migrations/* (brak zmian schematu)
|
||||
- routing HTTP i kontrolery zamowien
|
||||
- interfejsy API providerow wysylek poza normalizacja statusow Allegro edge
|
||||
|
||||
## SCOPE LIMITS
|
||||
- Zakres planu dotyczy tylko problemu statusow `unknown` dla opisow EN Allegro edge.
|
||||
- Plan nie obejmuje cleanupu starych rekordow `cron_jobs` ze statusem `processing`.
|
||||
- Plan nie obejmuje zmian UI poza efektem widocznego statusu po poprawnej normalizacji.
|
||||
|
||||
</boundaries>
|
||||
|
||||
<verification>
|
||||
Before declaring plan complete:
|
||||
- [ ] `php -l` przechodzi dla zmienionych plikow PHP
|
||||
- [ ] `vendor/bin/phpunit --filter DeliveryStatusTest` przechodzi
|
||||
- [ ] Re-run diagnostyki na numerze `A0046XFMG1` zwraca status rozpoznany (nie `unknown`)
|
||||
- [ ] Dokumentacja (`DB_SCHEMA`, `ARCHITECTURE`, `TECH_CHANGELOG`) zaktualizowana
|
||||
- [ ] Wszystkie acceptance criteria spelnione
|
||||
</verification>
|
||||
|
||||
<success_criteria>
|
||||
- `Parcel is awaiting pick-up` mapuje sie do `ready_for_pickup`
|
||||
- `Parcel has been delivered` mapuje sie do `delivered`
|
||||
- Brak regresji dla dotychczasowego flow normalizacji statusow
|
||||
- Test jednostkowy dla normalizacji/fallbacku istnieje i przechodzi
|
||||
- Dokumentacja techniczna jest aktualna
|
||||
</success_criteria>
|
||||
|
||||
<output>
|
||||
After completion, create `.paul/phases/69-allegro-tracking-english-statuses/69-01-SUMMARY.md`
|
||||
</output>
|
||||
@@ -0,0 +1,48 @@
|
||||
---
|
||||
phase: 69-allegro-tracking-english-statuses
|
||||
plan: 01
|
||||
subsystem: shipments
|
||||
tags: [allegro, tracking, edge-api, status-mapping, hotfix]
|
||||
|
||||
requires:
|
||||
- phase: 66-allegro-delivery-tracking
|
||||
provides: AllegroTrackingService edge API flow
|
||||
|
||||
provides:
|
||||
- EN status mapping for Allegro edge descriptions
|
||||
- EN keyword fallback in DeliveryStatus guesser
|
||||
- Unit tests for DeliveryStatus EN/PL normalization
|
||||
|
||||
affects: [allegro-tracking, delivery-status, docs]
|
||||
|
||||
key-files:
|
||||
modified:
|
||||
- src/Modules/Shipments/DeliveryStatus.php
|
||||
- DOCS/DB_SCHEMA.md
|
||||
- DOCS/ARCHITECTURE.md
|
||||
- DOCS/TECH_CHANGELOG.md
|
||||
created:
|
||||
- tests/Unit/DeliveryStatusTest.php
|
||||
---
|
||||
|
||||
# Phase 69 Plan 01: Allegro Tracking English Statuses
|
||||
|
||||
Naprawiono przypadki, w ktorych statusy Allegro edge API w jezyku angielskim byly zapisywane jako `unknown`.
|
||||
|
||||
## Outcome
|
||||
- `DeliveryStatus::slugifyAllegroDescription()` obsluguje prefiksy EN (`Parcel has been ...`, `Parcel is ...`, `Courier has ...`).
|
||||
- `ALLEGRO_EDGE_MAP` rozszerzono o slugi EN (m.in. `awaiting_pick_up`, `delivered`, `dispatched`, `released_for_delivery`).
|
||||
- `guessStatusFromDescription()` rozszerzono o fallback EN.
|
||||
- Dodano testy jednostkowe `DeliveryStatusTest` (4 testy, 7 asercji).
|
||||
|
||||
## Verification
|
||||
- `php -l src/Modules/Shipments/DeliveryStatus.php` -> OK.
|
||||
- `phpunit --filter DeliveryStatusTest` -> OK (4/4).
|
||||
- Realny numer `A0046XFMG1`:
|
||||
- `description=Parcel is awaiting pick-up`
|
||||
- `slug=awaiting_pick_up`
|
||||
- `normalized=ready_for_pickup`
|
||||
|
||||
## Notes
|
||||
- Zmiana nie wymaga migracji DB.
|
||||
- Zaktualizowano dokumentacje techniczna (`DB_SCHEMA`, `ARCHITECTURE`, `TECH_CHANGELOG`).
|
||||
Reference in New Issue
Block a user