update
This commit is contained in:
@@ -158,6 +158,7 @@ Migracje z prefiksem `ensure_` to migracje kompensujące — zostały dodane
|
||||
- schema neutralna wzgledem dostawcy API (pola `source_*`, `external_*`),
|
||||
- kolekcje zamowienia rozdzielone na osobne tabele 1:N,
|
||||
- `payload_json` dostepne dla diagnostyki/replay,
|
||||
- `personalization` (TEXT, nullable) w `order_items` — dane personalizacji produktu z shopPRO (custom_fields), przechowywane jako czysty tekst,
|
||||
- historia zmian statusow utrzymywana w `order_status_history`.
|
||||
|
||||
### `integration_order_sync_state`
|
||||
|
||||
@@ -1,5 +1,13 @@
|
||||
# Tech Changelog
|
||||
|
||||
## 2026-04-01 (Phase 63 - Order Item Personalization, Plan 01)
|
||||
- Migracja `20260401_000075_add_personalization_to_order_items.sql`: kolumna `personalization TEXT NULL` w `order_items`.
|
||||
- `ShopproOrderMapper::extractPersonalization()`: ekstrakcja `custom_fields` z odpowiedzi shopPRO API, konwersja HTML na czysty tekst (strip_tags, html_entity_decode, br->newline).
|
||||
- `ShopproOrderMapper::mapItems()`: dodanie klucza `personalization` do mapowanego itemu.
|
||||
- `OrderImportRepository::replaceItems()`: zapis `personalization` do INSERT query.
|
||||
- `resources/views/orders/show.php`: warunkowe wyswietlanie personalizacji pod nazwa produktu (div.item-personalization z etykieta i liniami tekstu, escape via `e()`).
|
||||
- `resources/scss/app.scss`: style `.item-personalization` (kompaktowy blok, border-left, muted colors).
|
||||
|
||||
## 2026-03-31 (Phase 60 - Order Status Aged Event, Plan 01)
|
||||
- Migracja `20260331_000074_seed_order_status_aged_cron.sql`: seed cron schedule `order_status_aged` co 3600s.
|
||||
- `OrderStatusAgedService`: skanuje zamowienia w danym statusie od X dni (query HAVING MAX(changed_at) na `order_status_history`), limit 100/regule, trigger `order.status_aged`.
|
||||
|
||||
Reference in New Issue
Block a user