3.9 KiB
3.9 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 | ||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 62-import-reimport-safety | 01 | api |
|
|
|
|
|
|
|
3min | 2026-03-31 | 2026-03-31 |
Phase 62 Plan 01: Import Re-import Safety Summary
Rozróżnienie import/aktualizacja w activity log shopPRO + ochrona lokalnych danych (płatności, przesyłki, historia statusów) przed nadpisaniem przy re-imporcie dla obu źródeł.
Performance
| Metric | Value |
|---|---|
| Duration | ~3min |
| Started | 2026-03-31 |
| Completed | 2026-03-31 |
| Tasks | 2 completed |
| Files modified | 2 |
Acceptance Criteria Results
| Criterion | Status | Notes |
|---|---|---|
| AC-1: shopPRO rozróżnia import od aktualizacji | Pass | "Import zamowienia z shopPRO" vs "Zaktualizowano zamowienie z shopPRO (re-import)" |
| AC-2: shopPRO deduplikuje identyczne wpisy | Pass | shouldSkipDuplicateImportActivity reuse z Allegro |
| AC-3: Re-import nie kasuje lokalnych płatności | Pass | replacePayments tylko przy $created |
| AC-4: Re-import nie kasuje lokalnej historii statusów | Pass | replaceStatusHistory tylko przy $created |
| AC-5: Re-import nie kasuje lokalnych przesyłek | Pass | replaceShipments tylko przy $created |
Accomplishments
- shopPRO activity log rozróżnia pierwszy import od re-importu (analogicznie do Allegro)
- Deduplikacja wpisów activity log eliminuje powtórzenia przy tym samym source_updated_at
- Re-import (UPDATE) nie kasuje już płatności, przesyłek ani historii statusów — chroni dane dodane lokalnie w orderPRO
- Zmiana w OrderImportRepository dotyczy obu źródeł (shopPRO i Allegro)
Files Created/Modified
| File | Change | Purpose |
|---|---|---|
src/Modules/Settings/ShopproOrdersSyncService.php |
Modified | Rozróżnienie summary import/aktualizacja, dodanie pól deduplikacji, warunek shouldSkipDuplicate |
src/Modules/Orders/OrderImportRepository.php |
Modified | replacePayments/Shipments/StatusHistory przeniesione do bloku if ($created) |
Decisions Made
| Decision | Rationale | Impact |
|---|---|---|
| Adresy/pozycje/notatki nadpisywane zawsze | Dane pochodzą wyłącznie ze źródła, nie są edytowane lokalnie | Źródło pozostaje autorytatywne dla tych danych |
| Płatności/przesyłki/historia tylko przy INSERT | Mogą być dodawane lokalnie w orderPRO (ręczna płatność, zmiana statusu) | Lokalne dane chronione przed kaskadowym DELETE |
Deviations from Plan
None - plan executed exactly as written
Issues Encountered
None
Next Phase Readiness
Ready:
- Import bezpieczny dla danych lokalnych
- Activity log spójny między Allegro i shopPRO
Concerns:
- Brak kolumny
origin(source/local) na tabelach relacyjnych — przy przyszłej potrzebie merge/diff danych z obu źródeł trzeba będzie dodać
Blockers:
- None
Phase: 62-import-reimport-safety, Plan: 01 Completed: 2026-03-31