update
This commit is contained in:
128
.paul/phases/90-delivery-price-import-fix/90-01-SUMMARY.md
Normal file
128
.paul/phases/90-delivery-price-import-fix/90-01-SUMMARY.md
Normal file
@@ -0,0 +1,128 @@
|
||||
---
|
||||
phase: 90-delivery-price-import-fix
|
||||
plan: 01
|
||||
subsystem: database, import
|
||||
tags: [allegro, shoppro, receipts, delivery_price, backfill]
|
||||
|
||||
requires:
|
||||
- phase: 70-receipt-shipping-cost
|
||||
provides: ReceiptService odczyt delivery_price z orders
|
||||
provides:
|
||||
- Zapis delivery_price przy imporcie zamowien (Allegro + shopPRO)
|
||||
- Backfill delivery_price z preferences_json/payload_json
|
||||
affects: [receipts, order-import]
|
||||
|
||||
tech-stack:
|
||||
added: []
|
||||
patterns: [resolveDeliveryCost helper w AllegroOrderImportService]
|
||||
|
||||
key-files:
|
||||
created:
|
||||
- database/migrations/20260408_000090_backfill_delivery_price.sql
|
||||
- bin/reissue_receipt.php
|
||||
modified:
|
||||
- src/Modules/Orders/OrderImportRepository.php
|
||||
- src/Modules/Settings/AllegroOrderImportService.php
|
||||
- src/Modules/Settings/ShopproOrderMapper.php
|
||||
|
||||
key-decisions:
|
||||
- "ALTER TABLE w migracji backfill — kolumna nie istniala na serwerze mimo ze byla w CREATE TABLE"
|
||||
- "resolveDeliveryCost reuse amountToFloat — Allegro cost moze byc obiekt {amount,currency} lub plain number"
|
||||
|
||||
patterns-established: []
|
||||
|
||||
duration: ~25min
|
||||
started: 2026-04-08T19:00:00Z
|
||||
completed: 2026-04-08T19:25:00Z
|
||||
---
|
||||
|
||||
# Phase 90 Plan 01: Delivery Price Import Fix Summary
|
||||
|
||||
**Naprawiono brak zapisu delivery_price przy imporcie zamowien — paragony teraz poprawnie uwzgledniaja koszt wysylki**
|
||||
|
||||
## Performance
|
||||
|
||||
| Metric | Value |
|
||||
|--------|-------|
|
||||
| Duration | ~25min |
|
||||
| Started | 2026-04-08 |
|
||||
| Completed | 2026-04-08 |
|
||||
| Tasks | 2 completed |
|
||||
| Files modified | 5 |
|
||||
|
||||
## Acceptance Criteria Results
|
||||
|
||||
| Criterion | Status | Notes |
|
||||
|-----------|--------|-------|
|
||||
| AC-1: Import Allegro zapisuje delivery_price | Pass | resolveDeliveryCost + amountToFloat |
|
||||
| AC-2: Import shopPRO zapisuje delivery_price | Pass | $transportCost mapowany do delivery_price |
|
||||
| AC-3: Backfill istniejacych zamowien | Pass | ALTER TABLE + UPDATE z JSON_EXTRACT |
|
||||
| AC-4: Paragon zawiera koszt wysylki | Pass | Zweryfikowano na zamowieniu #134: 10.00 + 13.50 = 23.50 |
|
||||
|
||||
## Accomplishments
|
||||
|
||||
- Import Allegro i shopPRO zapisuja delivery_price do tabeli orders
|
||||
- Backfill migracja wypelnia delivery_price z preferences_json (Allegro) i payload_json (shopPRO)
|
||||
- Paragon #134 prawidlowo zawiera pozycje "Koszt wysylki" 13.50 zl
|
||||
|
||||
## Files Created/Modified
|
||||
|
||||
| File | Change | Purpose |
|
||||
|------|--------|---------|
|
||||
| `src/Modules/Orders/OrderImportRepository.php` | Modified | Dodano delivery_price do INSERT, UPDATE i orderParams |
|
||||
| `src/Modules/Settings/AllegroOrderImportService.php` | Modified | Dodano delivery_price + metoda resolveDeliveryCost |
|
||||
| `src/Modules/Settings/ShopproOrderMapper.php` | Modified | Dodano delivery_price = $transportCost do tablicy $order |
|
||||
| `database/migrations/20260408_000090_backfill_delivery_price.sql` | Created | ALTER TABLE + backfill z JSON |
|
||||
| `bin/reissue_receipt.php` | Created | Skrypt CLI do usuwania i ponownego wystawiania paragonu |
|
||||
|
||||
## Decisions Made
|
||||
|
||||
| Decision | Rationale | Impact |
|
||||
|----------|-----------|--------|
|
||||
| ALTER TABLE w migracji backfill | Kolumna delivery_price byla w CREATE TABLE ale tabela na serwerze jej nie miala (starsza wersja) | Migracja jest self-contained |
|
||||
| resolveDeliveryCost reuse amountToFloat | Allegro cost moze byc obiekt {amount,currency} — istniejacy helper juz to obsluguje | Brak duplikacji kodu |
|
||||
| bin/reissue_receipt.php z DB_HOST_REMOTE | Lokalny XAMPP nie dziala, potrzeba dostepu do remote DB | Skrypt narzędziowy do testow |
|
||||
|
||||
## Deviations from Plan
|
||||
|
||||
### Summary
|
||||
|
||||
| Type | Count | Impact |
|
||||
|------|-------|--------|
|
||||
| Auto-fixed | 1 | Krytyczny — bez ALTER TABLE migracja by nie zadziałała |
|
||||
| Scope additions | 1 | bin/reissue_receipt.php — narzedzie testowe |
|
||||
| Deferred | 0 | - |
|
||||
|
||||
**Total impact:** ALTER TABLE bylo niezbedne. Skrypt testowy dodany dla weryfikacji.
|
||||
|
||||
### Auto-fixed Issues
|
||||
|
||||
**1. Brak kolumny delivery_price na serwerze**
|
||||
- **Found during:** Task 2 (migracja backfill)
|
||||
- **Issue:** Kolumna byla w pliku CREATE TABLE ale nie istniala faktycznie w bazie (tabela starsza niz migracja)
|
||||
- **Fix:** Dodano ALTER TABLE ADD COLUMN na poczatku migracji
|
||||
- **Verification:** Migracja przeszla, delivery_price=13.50 dla zamowienia #134
|
||||
|
||||
## Issues Encountered
|
||||
|
||||
| Issue | Resolution |
|
||||
|-------|------------|
|
||||
| SQLSTATE[42S22] Column not found delivery_price | Dodano ALTER TABLE do migracji |
|
||||
| Brak polaczenia z DB (XAMPP off) | Stworzono bin/reissue_receipt.php z DB_HOST_REMOTE |
|
||||
|
||||
## Next Phase Readiness
|
||||
|
||||
**Ready:**
|
||||
- delivery_price jest poprawnie zapisywane przy kazdym nowym imporcie
|
||||
- Istniejace zamowienia maja backfill
|
||||
- Paragony dzialaja poprawnie
|
||||
|
||||
**Concerns:**
|
||||
- None
|
||||
|
||||
**Blockers:**
|
||||
- None
|
||||
|
||||
---
|
||||
*Phase: 90-delivery-price-import-fix, Plan: 01*
|
||||
*Completed: 2026-04-08*
|
||||
Reference in New Issue
Block a user