6.8 KiB
6.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 | ||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 83-allegro-pull-status-mapping | 01 | settings, orders |
|
|
|
|
|
|
|
|
~30min | 2026-04-07T18:00:00Z | 2026-04-07T18:30:00Z |
Phase 83 Plan 01: Allegro Pull Status Mapping — Summary
Dedykowana tabela pull mappings dla Allegro z auto-discovery statusow i UI push/pull w ustawieniach
Performance
| Metric | Value |
|---|---|
| Duration | ~30min |
| Tasks | 3 planned, 3 completed |
| Files created | 2 |
| Files modified | 8 |
| DB migration | Executed on remote |
Acceptance Criteria Results
| Criterion | Status | Notes |
|---|---|---|
| AC-1: Nowa tabela pull mappings | Pass | Tabela utworzona z UNIQUE na allegro_status_code, 4 rows pre-populated z push table |
| AC-2: Import uzywa pull mappings | Pass | AllegroOrderImportService uzywa pullStatusMappings->findMappedStatusCode() |
| AC-3: Fallback dla niezmapowanych statusow | Pass | Auto-discovery via upsertDiscoveredStatus(), fallback na surowy status |
| AC-4: Sekcja pull mapping w UI | Pass | Dwie sekcje: push (orderPRO->Allegro) i pull (Allegro->orderPRO) |
Accomplishments
- Nowa tabela
allegro_order_status_pull_mappingsz UNIQUE naallegro_status_code— eliminuje bug importu z niezmapowanym statusem - UI w Ustawienia > Allegro > Statusy ma dwie sekcje: push ("Wysylka statusow") i pull ("Mapowanie przy imporcie")
- Auto-discovery statusow Allegro zarowno przy imporcie zamowien jak i przy recznym "Pobierz statusy z Allegro"
- Naprawiono 3 zamowienia (#223, #225, #233) z niezmapowanym statusem
new→nieoplacone - Dodano 6 brakujacych statusow Allegro do pull table (new, ready_for_processing, ready_for_shipment, delivered, returned, bought)
Files Created/Modified
| File | Change | Purpose |
|---|---|---|
database/migrations/20260407_000083_allegro_pull_status_mappings.sql |
Created | Nowa tabela + pre-populate z push mappings |
src/Modules/Settings/AllegroPullStatusMappingRepository.php |
Created | Repository CRUD+lookup dla pull mappings |
src/Modules/Settings/AllegroOrderImportService.php |
Modified | Pull mapping lookup zamiast push reverse-lookup |
src/Modules/Settings/AllegroStatusMappingController.php |
Modified | Nowa metoda savePullStatusMappings() |
src/Modules/Settings/AllegroIntegrationController.php |
Modified | Pull repo dependency + dane pull do widoku |
src/Modules/Settings/AllegroStatusDiscoveryService.php |
Modified | Discovery zapisuje do obu tabel (push+pull) |
src/Modules/Cron/CronHandlerFactory.php |
Modified | Wstrzykniecie AllegroPullStatusMappingRepository |
routes/web.php |
Modified | Nowa route POST .../statuses/save-pull + DI |
resources/views/settings/allegro.php |
Modified | Sekcja pull mapping w tabce Statusy |
resources/lang/pl.php |
Modified | Klucze pull_title, pull_description, saved_pull |
Decisions Made
| Decision | Rationale | Impact |
|---|---|---|
| Brak integration_id w tabeli Allegro | Allegro jest single-tenant (jeden zestaw credentials) | Prostsza tabela niz shopPRO |
| orderpro_status_code nullable w pull | Auto-discovered statusy nie maja jeszcze mapowania | User mapuje w UI po discovery |
| Discovery service pisze do obu tabel | "Pobierz statusy z Allegro" musi zasilac pull table | Spojne zachowanie push+pull |
| Dodanie 6 statusow Allegro recznie do pull | Discovery nie lapie krotkotrwalych statusow (np. new) | Pelna paleta statusow od razu |
Deviations from Plan
Summary
| Type | Count | Impact |
|---|---|---|
| Scope additions | 2 | Istotne usprawnienia |
| Auto-fixed | 1 | Naprawa danych zamowien |
Total impact: Rozszerzenie o discovery service + naprawa danych — kluczowe dla kompletnosci
Scope Addition: AllegroStatusDiscoveryService
- Requested by: User during testing ("nie ma statusu new po Pobierz statusy")
- Issue: Discovery service zapisywal tylko do push table, nie do pull
- Fix: Dodanie pullStatusMappings dependency + upsertDiscoveredStatus w petli discovery
- Files:
AllegroStatusDiscoveryService.php,routes/web.php
Scope Addition: Reczne dodanie statusow Allegro
- Requested by: User
- Issue: Discovery nie lapie krotkotrwalych statusow (new, bought, ready_for_processing)
- Fix: INSERT 6 brakujacych statusow do pull table
- Impact: User od razu moze zmapowac wszystkie statusy
Auto-fixed: Zamowienia z niezmapowanym statusem
- Found during: Investigation
- Issue: 3 zamowienia (#223, #225, #233) mialy surowy status
newzamiast zmapowanego - Fix: UPDATE orders SET external_status_id = 'nieoplacone' WHERE external_status_id = 'new' AND source = 'allegro'
Next Phase Readiness
Ready:
- Pull mapping w pelni funkcjonalne i konfigurowalne
- Nowe importy z Allegro beda automatycznie mapowac statusy
- Discovery zasilaja obie tabele (push+pull)
Concerns:
- Brak ochrony statusu przy re-imporcie Allegro (analogicznie do Phase 75 dla shopPRO) — jesli potrzebne, osobna faza
- Niektore statusy Allegro moga nie miec mapowania — user musi je ustawic w UI
Blockers:
- None — kod wymaga deploy na serwer (FTP)
Phase: 83-allegro-pull-status-mapping, Plan: 01 Completed: 2026-04-07