Files
interblue.pl/.paul/phases/01-order-source-api/01-01-SUMMARY.md
2026-04-27 13:21:58 +02:00

4.0 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
01-order-source-api 01 api
prestashop
webservice
order
override
pole order_source w odpowiedzi /api/orders/ webservice PrestaShop
added patterns
PrestaShop ObjectModel $definition → automatyczna ekspozycja w webservice
modified
override/classes/order/Order.php
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
Customowe pola DB w ps_orders dodawane przez AddOrderExtraFields są eksponowane w API przez $definition w override Order.php
~15min 2026-04-27T00:00:00Z 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