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.