6.7 KiB
6.7 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 | |||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 74-reverse-status-mapping | 01 | settings |
|
|
|
|
|
|
|
|
~30min | 2026-04-07T00:00:00Z | 2026-04-07T00:30:00Z |
Phase 74 Plan 01: Reverse Status Mapping Summary
Odwrocenie mapowania statusow w shopPRO i Allegro — UI pokazuje statusy orderPRO po lewej, dropdown z zewnetrznymi po prawej. Migracja DB zmienia unique key na orderpro_status_code.
Performance
| Metric | Value |
|---|---|
| Duration | ~30min |
| Tasks | 2 completed |
| Files modified | 11 |
Acceptance Criteria Results
| Criterion | Status | Notes |
|---|---|---|
| AC-1: UI shopPRO — orderPRO po lewej, shopPRO po prawej | Pass | Tabela iteruje orderproStatuses, dropdown z shopproStatuses |
| AC-2: UI Allegro — orderPRO po lewej, Allegro po prawej | Pass | Analogicznie, usuniety single-add form |
| AC-3: Sync dziala w obu kierunkach | Pass | buildStatusMap() i buildReverseStatusMap() nadal zwracaja poprawne mapy |
| AC-4: Sync pobiera statusy do dropdown | Pass | Flash + listExternalStatuses() merge |
| AC-5: Migracja DB zmienia unique constraint | Pass | SQL przygotowany, deduplikacja przed zmiana |
Accomplishments
- Odwrocony UI mapowania w obu integracjach (shopPRO i Allegro) — orderPRO statusy jako wiersze
- Migracja DB: unique key z external_code na orderpro_status_code w obu tabelach
- Nowe metody: listExternalStatuses(), buildAllegroToOrderproMap(), replaceAllMappings()
- JS synchronizacja hidden input shoppro_status_name/allegro_status_name przy zmianie dropdown
Files Created/Modified
| File | Change | Purpose |
|---|---|---|
database/migrations/20260407_000078_reverse_status_mapping_keys.sql |
Created | Migracja unique key + deduplikacja |
src/Modules/Settings/ShopproStatusMappingRepository.php |
Modified | replaceForIntegration() key na orderpro, +listExternalStatuses() |
src/Modules/Settings/AllegroStatusMappingRepository.php |
Modified | upsertMapping() key na orderpro, +listExternalStatuses(), +buildAllegroToOrderproMap(), +replaceAllMappings(), upsertDiscoveredStatus() check-then-insert |
src/Modules/Settings/ShopproOrdersSyncService.php |
Modified | buildStatusMap() komentarz + guard na duplikaty |
src/Modules/Settings/ShopproIntegrationsController.php |
Modified | buildMappingIndex() + buildExternalStatusOptions() zamiast buildStatusRows(), saveStatusMappings() odwrocony |
src/Modules/Settings/AllegroStatusMappingController.php |
Modified | saveStatusMappingsBulk() odwrocony, saveStatusMapping() stub redirect |
src/Modules/Settings/AllegroIntegrationController.php |
Modified | +allegroStatuses w danych widoku |
resources/views/settings/shoppro.php |
Modified | Odwrocona tabela + JS name sync |
resources/views/settings/allegro.php |
Modified | Odwrocona tabela, usuniety single-add form, +JS name sync |
resources/lang/pl.php |
Modified | Nowe klucze: shoppro_status, allegro_status, no_orderpro_statuses, zmienione opisy |
Decisions Made
| Decision | Rationale | Impact |
|---|---|---|
| Zachowanie nazw kolumn DB | Minimalizacja ryzyka — zmiana tylko unique key, nie schemat | Zero zmian w logice sync pull/push |
| Discovered statuses z Flash + DB merge | Brak nowej tabeli, proste rozwiazanie | Dropdown opcje znikaja po sesji jesli nie zapisane w mapowaniu |
| upsertDiscoveredStatus() jako check-then-insert | Po zmianie unique na orderpro_status_code, ON DUPLICATE KEY nie dziala na allegro_status_code | Allegro discovery nadal dziala poprawnie |
| Usuniety single-add form w Allegro | Zbedny — wiersze to orderPRO statusy, nie trzeba dodawac recznie | Czystszy UI |
Deviations from Plan
Summary
| Type | Count | Impact |
|---|---|---|
| Auto-fixed | 2 | Konieczne dostosowania |
| Deferred | 1 | Migracja do uruchomienia na serwerze |
Auto-fixed Issues
1. Nazwa pliku migracji
- Found during: Task 1
- Issue: Plan mial nazwe
20260407_000074_...ale kolejny numer to 078 - Fix: Plik nazwany
20260407_000078_reverse_status_mapping_keys.sql
2. upsertDiscoveredStatus() w AllegroStatusMappingRepository
- Found during: Task 1
- Issue: Po zmianie unique key na orderpro_status_code, ON DUPLICATE KEY UPDATE nie moze kluczowac na allegro_status_code
- Fix: Zamieniono na check-then-insert (SELECT + INSERT/UPDATE)
Deferred Items
- Migracja SQL wymaga uruchomienia na serwerze (lokalna baza niedostepna — XAMPP wylaczony)
Issues Encountered
| Issue | Resolution |
|---|---|
| Lokalna baza danych niedostepna | Migracja przygotowana do uruchomienia na serwerze |
| saveStatusMapping() route nadal istnieje | Dodany stub redirect w kontrolerze |
Next Phase Readiness
Ready:
- Kod w pelni przygotowany i zweryfikowany syntaktycznie
- Migracja SQL gotowa do uruchomienia
- Dokumentacja zaktualizowana (DB_SCHEMA, ARCHITECTURE, TECH_CHANGELOG)
Concerns:
- Migracja musi byc uruchomiona na serwerze przed deploy
- Istniejace mapowania z duplikatami orderpro_status_code zostana zdeduplikowane (zachowany najnowszy)
Blockers:
- None (po uruchomieniu migracji)
Phase: 74-reverse-status-mapping, Plan: 01 Completed: 2026-04-07