This commit is contained in:
2026-04-27 13:21:58 +02:00
parent b1e8bb3d12
commit 9cea86c0bf
16 changed files with 360 additions and 24 deletions

View File

@@ -0,0 +1,97 @@
---
phase: 01-order-source-api
plan: 01
subsystem: api
tags: [prestashop, webservice, order, override]
requires: []
provides:
- pole order_source w odpowiedzi /api/orders/ webservice PrestaShop
affects: []
tech-stack:
added: []
patterns: ["PrestaShop ObjectModel $definition → automatyczna ekspozycja w webservice"]
key-files:
modified: [override/classes/order/Order.php]
key-decisions:
- "order_source to prawdziwe pole DB (ENUM), nie alias dla module"
- "Wystarczy dodać pole do $definition — webservice eksponuje je automatycznie bez webserviceParameters"
- "Plik override zsynchronizowany z AddOrderExtraFields/_overrides/Order-modrefchange.php"
patterns-established:
- "Customowe pola DB w ps_orders dodawane przez AddOrderExtraFields są eksponowane w API przez $definition w override Order.php"
duration: ~15min
started: 2026-04-27T00:00:00Z
completed: 2026-04-27T00:00:00Z
---
# Phase 1 Plan 01: order-source-api Summary
**Pole `order_source` (ENUM: Allegro / Sklep int. / Telefonicznie) dodane do odpowiedzi webservice API PrestaShop `/api/orders/`.**
## Performance
| Metric | Value |
|--------|-------|
| Duration | ~15 min |
| Tasks | 1 completed |
| Files modified | 1 |
## Acceptance Criteria Results
| Criterion | Status | Uwagi |
|-----------|--------|-------|
| AC-1: order_source w odpowiedzi API | Pass | Pole pojawia się w JSON /api/orders/{id} |
| AC-2: Istniejące pola niezmienione | Pass | module, payment, order_rows itp. bez zmian |
| AC-3: Metody modrefchange niezmienione | Pass | add(), setLastInvoiceNumber(), setDeliveryNumber() zachowane |
## Accomplishments
- Zsynchronizowano lokalny `override/classes/order/Order.php` z wersją serwerową (`AddOrderExtraFields/_overrides/Order-modrefchange.php`)
- Dodano `public $order_source` i `'order_source' => TYPE_STRING` do `$definition` — webservice eksponuje pole automatycznie
- Zewnętrzna aplikacja dostawcy może teraz filtrować zamówienia po `order_source` (Allegro / Sklep int. / Telefonicznie)
## Files Created/Modified
| File | Change | Purpose |
|------|--------|---------|
| `override/classes/order/Order.php` | Modified | Dodano $order_source i $definition z order_source; zachowano 3 metody modrefchange |
## Decisions Made
| Decision | Rationale | Impact |
|----------|-----------|--------|
| Użyto $definition zamiast webserviceParameters+getter | PrestaShop WS eksponuje automatycznie wszystkie pola z $definition; prostsze i czystsze | Brak dodatkowego kodu |
| order_source = wartość z DB, nie alias module | Kolumna istnieje (AddOrderExtraFields), moduł ordersextracolumns ją wypełnia i wyświetla w adminie | Dane są semantyczne (Allegro/Sklep int./Telefonicznie), nie techniczne (x13allegro/ps_cashondelivery) |
| Zsynchronizowano z Order-modrefchange.php, nie pisano od zera | Gotowa wersja zawiera już obie zmiany (order_source + modrefchange) | Uniknięto ryzyka pominięcia metod modrefchange |
## Deviations from Plan
Pierwotny plan zakładał `getWsOrderSource()` getter i `webserviceParameters` — po analizie `ordersextracolumns.php` odkryto, że `order_source` to prawdziwe pole DB, a webservice eksponuje `$definition` automatycznie. Plan uproszczono przed APPLY.
**Total impact:** Pozytywne odchylenie — rozwiązanie prostsze niż planowane.
## Issues Encountered
| Issue | Resolution |
|-------|------------|
| Lokalny override był niezgodny z serwerowym (stara wersja bez order_source) | Zsynchronizowano z AddOrderExtraFields/_overrides/Order-modrefchange.php |
## Next Phase Readiness
**Ready:**
- API zwraca `order_source` dla wszystkich zamówień (nowszych niż 2023-04-20)
- Zamówienia starsze mają `order_source: null` — normalnie, kolumna była pusta przed instalacją AddOrderExtraFields
**Concerns:**
- Zamówienia sprzed 2023-04-20 mają `null` w API — ordersextracolumns obsługuje to w SQL przez IF(), ale API zwróci surowy null. Dostawca powinien to uwzględnić po stronie swojej aplikacji.
**Blockers:** Brak
---
*Phase: 01-order-source-api, Plan: 01*
*Completed: 2026-04-27*