# 2026-04-08 ## Co zrobiono - [Phase 86, Plan 01] Naprawa bledu API Apaczka przy tworzeniu przesylki COD - Dodano pole `bankaccount` (numer konta bankowego) do payloadu COD w ApaczkaShipmentService - Walidacja: brak numeru konta w ustawieniach firmy rzuca czytelny blad - Czyszczenie numeru konta z prefixu PL i spacji do 26 cyfr - [Phase 87, Plan 01] Usuwanie przesylek z zakladki Przesylki w szczegolach zamowienia - Metoda delete() w ShipmentPackageRepository i ShipmentController - Endpoint POST /orders/{id}/shipment/{packageId}/delete z CSRF i owner check - Cleanup pliku etykiety z dysku, activity log shipment_deleted - Przycisk "Usun" z potwierdzeniem OrderProAlerts.confirm w tabeli przesylek - [Phase 88, Plan 01] Dodanie naglowka User-Agent do wszystkich requestow Allegro API - Dodano buildUserAgent() do AllegroApiClient, AllegroOAuthClient, AllegroTrackingService - Dodano zmienne APP_VERSION i ALLEGRO_USER_AGENT_URL do .env/.env.example - Format: orderPRO/1.0.0 (+https://orderpro.pl/info) - [Phase 89, Plan 01] Publiczna strona /info dla Allegro User-Agent URL - InfoController + widok info/allegro.php + layout public.php - Route GET /info bez authMiddleware - Tresc: opis wewnetrznej aplikacji Project PRO, integracja z Allegro API, kontakt - [Bugfix] Warunek payment_status w automatyzacji nie dzialal z eventem order.imported - Dodano `new_payment_status` do kontekstu triggera `order.imported` w AllegroOrderImportService i ShopproOrdersSyncService - Wartosc pochodzi z mapped order (`payment_status`: 0/1/2) — zgodna z istniejacym evaluatePaymentStatusCondition - [Phase 90, Plan 01] Naprawa zapisu delivery_price przy imporcie zamowien - Dodano delivery_price do INSERT/UPDATE/orderParams w OrderImportRepository - AllegroOrderImportService: resolveDeliveryCost (obiekt {amount,currency} lub plain number) - ShopproOrderMapper: delivery_price = $transportCost - Migracja backfill: ALTER TABLE + UPDATE z JSON_EXTRACT (preferences_json/payload_json) - bin/reissue_receipt.php: skrypt CLI do ponownego wystawiania paragonu z remote DB ## Zmienione pliki - `src/Modules/Info/InfoController.php` - `resources/views/info/allegro.php` - `resources/views/layouts/public.php` - `src/Modules/Settings/AllegroApiClient.php` - `src/Modules/Settings/AllegroOAuthClient.php` - `src/Modules/Shipments/AllegroTrackingService.php` - `.env.example` - `.env` - `src/Modules/Shipments/ApaczkaShipmentService.php` - `src/Modules/Shipments/ShipmentPackageRepository.php` - `src/Modules/Shipments/ShipmentController.php` - `routes/web.php` - `resources/views/orders/show.php` - `src/Modules/Settings/AllegroOrderImportService.php` - `src/Modules/Settings/ShopproOrdersSyncService.php` - `src/Modules/Orders/OrderImportRepository.php` - `src/Modules/Settings/ShopproOrderMapper.php` - `database/migrations/20260408_000090_backfill_delivery_price.sql` - `bin/reissue_receipt.php` - [Phase 91, Plan 01] Resilient polling w OrderPROPrint — 3 warstwy obrony przed zawieszeniem - Dodano CancellationTokenSource (45s) per cykl pollingu jako safety net - Dodano watchdog: force-reset _isProcessing po 60s gdy poll zawisnie - Propagacja CancellationToken do metod HTTP w PrintApiClient ## Zmienione pliki (Phase 91) - `clients/windows/OrderPROPrint/Services/PollingService.cs` - `clients/windows/OrderPROPrint/Services/PrintApiClient.cs`