Files
orderPRO/.paul/phases/62-import-reimport-safety/62-01-SUMMARY.md
2026-03-31 10:56:31 +02:00

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
import
activity-log
deduplication
data-protection
phase provides
56-order-payments ręczne płatności w orderPRO które mogą być nadpisane
rozróżnienie import vs aktualizacja w activity log shopPRO
deduplikacja wpisów activity log shopPRO (shouldSkipDuplicateImportActivity)
ochrona lokalnych płatności, przesyłek i historii statusów przed nadpisaniem przy re-imporcie
added patterns
replacePayments/Shipments/StatusHistory tylko przy INSERT (nie UPDATE) w upsertOrderAggregate
created modified
src/Modules/Settings/ShopproOrdersSyncService.php
src/Modules/Orders/OrderImportRepository.php
Adresy, pozycje i notatki nadpisywane zawsze (dane ze źródła); płatności, przesyłki i historia statusów tylko przy pierwszym imporcie
Reuse shouldSkipDuplicateImportActivity z Allegro zamiast nowej logiki
Przy re-imporcie chronić dane które mogą pochodzić z lokalnych akcji użytkownika
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