94 lines
3.4 KiB
Markdown
94 lines
3.4 KiB
Markdown
---
|
|
phase: 66-allegro-delivery-tracking
|
|
plan: 02
|
|
subsystem: shipments
|
|
tags: [allegro, tracking, fallback, keyword-matching, logging]
|
|
|
|
requires:
|
|
- phase: 66-allegro-delivery-tracking
|
|
provides: AllegroTrackingService edge API, DeliveryStatus allegro_edge provider
|
|
|
|
provides:
|
|
- Keyword-based fallback for unknown Allegro edge descriptions
|
|
- Error logging for unmapped statuses
|
|
- Extended ALLEGRO_EDGE_MAP with 6 new real-world slugs
|
|
|
|
affects: [allegro-tracking, delivery-status]
|
|
|
|
tech-stack:
|
|
added: []
|
|
patterns: [keyword-fallback, graceful-degradation]
|
|
|
|
key-files:
|
|
modified:
|
|
- src/Modules/Shipments/DeliveryStatus.php
|
|
- src/Modules/Shipments/AllegroTrackingService.php
|
|
|
|
key-decisions:
|
|
- "Keyword fallback zamiast pytania użytkownika (cron nie ma interakcji)"
|
|
- "error_log dla niezmapowanych statusów (monitoring bez blokowania)"
|
|
- "IN_TRANSIT sprawdzany przed READY_FOR_PICKUP w fallback (uniknięcie fałszywego matchu 'odbior' w 'w drodze do odbiorcy')"
|
|
|
|
patterns-established:
|
|
- "guessStatusFromDescription() jako graceful degradation dla nieznanych opisów"
|
|
- "Kolejność keyword matching: terminal → active → transit → pickup (specyficzność malejąca)"
|
|
|
|
duration: ~10min
|
|
started: 2026-04-03T20:45:00Z
|
|
completed: 2026-04-03T20:55:00Z
|
|
---
|
|
|
|
# Phase 66 Plan 02: Allegro Tracking Fallback + Extended Map
|
|
|
|
**Rozszerzenie mapy o 6 nowych slugów z realnych przesyłek, keyword-based fallback (guessStatusFromDescription) dla nieznanych opisów, logowanie nowych statusów do error_log.**
|
|
|
|
## Performance
|
|
|
|
| Metric | Value |
|
|
|--------|-------|
|
|
| Duration | ~10min |
|
|
| Tasks | 2 completed (delegated) + 1 orkiestrator fix |
|
|
| Files modified | 2 |
|
|
| Execution mode | Delegated auto (2 sub-agents, sequential) |
|
|
|
|
## Acceptance Criteria Results
|
|
|
|
| Criterion | Status | Notes |
|
|
|-----------|--------|-------|
|
|
| AC-1: Nowe slugi w mapie | Pass | 6 nowych slugów z zamówienia AD0243IOG6 |
|
|
| AC-2: Fallback keyword matching | Pass | guessStatusFromDescription() — 9 kategorii keywords |
|
|
| AC-3: Logowanie nieznanych statusów | Pass | error_log w fetchAllegroEdgeStatus |
|
|
|
|
## Accomplishments
|
|
|
|
- 6 nowych slugów w ALLEGRO_EDGE_MAP z realnego zamówienia AD0243IOG6
|
|
- guessStatusFromDescription() jako keyword fallback — 9 kategorii (delivered, returned, cancelled, out_for_delivery, ready_for_pickup, in_transit, confirmed, created, problem)
|
|
- Logowanie niezmapowanych statusów do error_log z pełnym kontekstem (opis, slug, guessed status)
|
|
- Fix kolejności keyword matching: IN_TRANSIT przed READY_FOR_PICKUP
|
|
|
|
## Files Created/Modified
|
|
|
|
| File | Change | Purpose |
|
|
|------|--------|---------|
|
|
| `src/Modules/Shipments/DeliveryStatus.php` | Modified | +6 slugów w mapie, +guessStatusFromDescription() |
|
|
| `src/Modules/Shipments/AllegroTrackingService.php` | Modified | Fallback + error_log w fetchAllegroEdgeStatus() |
|
|
|
|
## Deviations from Plan
|
|
|
|
### Auto-fixed Issues
|
|
|
|
**1. Kolejność keyword matching**
|
|
- **Found during:** Orkiestrator verification
|
|
- **Issue:** "w drodze do odbiorcy" matchował READY_FOR_PICKUP (bo `odbior`) zamiast IN_TRANSIT
|
|
- **Fix:** IN_TRANSIT sprawdzany przed READY_FOR_PICKUP, READY_FOR_PICKUP ograniczony do `oczekuje na odb`/`gotowa do odb`
|
|
|
|
## Next Phase Readiness
|
|
|
|
**Ready:** Phase 66 complete — Allegro Delivery tracking działa z mapą + fallback + logowaniem
|
|
|
|
**Blockers:** None
|
|
|
|
---
|
|
*Phase: 66-allegro-delivery-tracking, Plan: 02*
|
|
*Completed: 2026-04-03*
|