Phase 02 plans 02-01, 02-02, 02-03: - fix(02-01): dead condition in AllegroShipmentService ZPL page size Both ternary branches returned 'A6'; ZPL now correctly returns 'ZPL' - fix(02-02): add last_status_checked_at cursor to AllegroStatusSyncService New migration adds orders.last_status_checked_at DATETIME NULL with composite index (source, source_updated_at). findOrdersNeedingStatusSync() filters by cursor; markOrderStatusChecked() records timestamp on success. - fix(02-03): replace AllegroOrderSyncStateRepository in ShopproOrdersSyncService New ShopproOrderSyncStateRepository (same table, correct class name). Application.php wires correct repository to correct service. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
5.2 KiB
5.2 KiB
phase, plan, type, wave, depends_on, files_modified, autonomous
| phase | plan | type | wave | depends_on | files_modified | autonomous | ||
|---|---|---|---|---|---|---|---|---|
| 02-bug-fixes | 01 | execute | 1 |
|
true |
Uzasadnienie
Etykiety ZPL są przeznaczone dla drukarek termicznych (InPost, kurierzy), które używają innego formatu niż PDF. Prawidłowy rozmiar dla ZPL to A6 (etykieta termiczna 105×148 mm), natomiast PDF powinien być pobierany z rozmiarem A4 dla standardowej kartki. Aktualnie obie gałęzie zwracają 'A6', co sprawia że:
- PDF jest pobierany jako A6 zamiast A4 (etykieta za mała dla normalnej drukarki)
- Conditional jest martwym kodem — nie ma żadnego rozróżnienia między formatami
Output
- Poprawiony plik
AllegroShipmentService.phpz działającym warunkiem - Usunięty wpis błędu z
.paul/codebase/CONCERNS.md
Plik źródłowy
@src/Modules/Shipments/AllegroShipmentService.php
<acceptance_criteria>
AC-1: Warunek ternary jest aktywny i rozróżnia formaty
Given metoda downloadLabel() otrzymuje pakiet z label_format = 'ZPL'
When wywoływane jest getShipmentLabel()
Then pageSize przekazany do API to 'A6' (format termiczny)
AC-2: PDF pobierany z poprawnym rozmiarem
Given metoda downloadLabel() otrzymuje pakiet z label_format = 'PDF' (lub pustym)
When wywoływane jest getShipmentLabel()
Then pageSize przekazany do API to 'A4' (format A4 dla PDF)
AC-3: Brak martwego kodu w warunku
Given obie gałęzie ternary
When dokonano zmiany
Then obie gałęzie zwracają różne wartości — brak dead code
</acceptance_criteria>
Naprawa martwego warunku page size w AllegroShipmentService src/Modules/Shipments/AllegroShipmentService.php W pliku `src/Modules/Shipments/AllegroShipmentService.php`, linia 251:Aktualna (błędna) linia:
```php
$pageSize = $labelFormat === 'ZPL' ? 'A6' : 'A6';
```
Poprawić na:
```php
$pageSize = $labelFormat === 'ZPL' ? 'A6' : 'A4';
```
Uzasadnienie wartości:
- `'ZPL'` → `'A6'`: Etykiety termiczne ZPL używają formatu 105×148 mm (A6). Allegro API akceptuje `'A6'` dla drukarek termicznych.
- `'PDF'` (i inne) → `'A4'`: Etykiety PDF powinny być pobierane w formacie A4 dla standardowych drukarek.
Nie zmieniać nic poza tą jedną linią. Nie refaktoryzować otaczającego kodu.
Przeszukaj plik greppem pod kątem martwego warunku:
```
grep "? 'A6' : 'A6'" src/Modules/Shipments/AllegroShipmentService.php
```
Wynik powinien być pusty (linia nie istnieje).
Sprawdź że nowa linia jest poprawna:
```
grep "pageSize" src/Modules/Shipments/AllegroShipmentService.php
```
Powinno zwrócić: `$pageSize = $labelFormat === 'ZPL' ? 'A6' : 'A4';`
AC-1, AC-2, AC-3 spełnione: warunek jest aktywny, ZPL → A6, PDF → A4
Usunięcie naprawionego błędu z CONCERNS.md
.paul/codebase/CONCERNS.md
W pliku `.paul/codebase/CONCERNS.md`, usuń całą sekcję:
```
### [HIGH] ZPL Label Page Size: Dead Conditional `'ZPL' ? 'A6' : 'A6'`
...
---
```
Czyli wszystko od nagłówka `### [HIGH] ZPL Label Page Size` do (włącznie z) linii `---` kończącej tę sekcję w bloku "Known Bugs".
Nie usuwać innych sekcji. Nie zmieniać numeracji ani struktury pliku.
```
grep "ZPL Label Page Size" .paul/codebase/CONCERNS.md
```
Wynik powinien być pusty — sekcja usunięta.
Wpis błędu usunięty z CONCERNS.md po jego naprawieniu
DO NOT CHANGE
src/Modules/Settings/AllegroApiClient.php— nie zmieniać sygnaturygetShipmentLabel()- Pozostałe sekcje
.paul/codebase/CONCERNS.md— usuwamy tylko naprawiony błąd - Żaden inny plik w
src/Modules/Shipments/
SCOPE LIMITS
- Ten plan naprawia wyłącznie martwy warunek
pageSize - Nie refaktoryzujemy
downloadLabel()ani nie zmieniamy logiki zapisu pliku - Nie implementujemy obsługi innych formatów etykiet (np. PNG)
<success_criteria>
- Wszystkie zadania ukończone
- Martwy warunek
'ZPL' ? 'A6' : 'A6'nie istnieje w kodzie - ZPL → A6, PDF → A4 (różne wartości, aktywny warunek)
- Wpis błędu usunięty z CONCERNS.md
- Brak błędów składniowych w PHP </success_criteria>