feat(104-apaczka-weekend-delivery): Apaczka Paczka w Weekend dla paczkomatow InPost
Phase 104 complete: - Backend: ApaczkaShipmentService::buildOptionsPayload() mapuje weekend_delivery -> option[19] = 1 w payloadzie API Apaczka v2 - Stala OPTION_KEYS jako rozszerzalne mapowanie pole formularza -> id opcji Apaczki - Frontend: checkbox "Dostawa w weekend (sobota)" w prepare.php widoczny tylko dla supplier=INPOST + paczkomat (door_to_point=1 lub point_to_point=1) - JS toggle oparty na atrybutach data-supplier/data-paczkomat z resetem stanu - 3 nowe testy jednostkowe pokrywajace mapowanie buildOptionsPayload (phpunit OK 11/11) - Hotfix integracyjny po UAT: ShipmentController::create() nie przekazywal pola weekend_delivery z requestu do formData providera (root cause: reczna lista pol w controllerze) - Dokumentacja zaktualizowana (DOCS/ARCHITECTURE.md, DOCS/TECH_CHANGELOG.md) DEFER-104-01: rozwazyc test integracyjny pelnego flow controller -> service lub refactor na request->all(). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -351,6 +351,7 @@
|
||||
- `apaczka` ustawia jawnie `pickup.type` (`SELF`/`COURIER`) na podstawie uslugi i obecnosci `sender_point_id`; dla `COURIER` dopelnia tez `pickup.date`, `pickup.hours_from`, `pickup.hours_to`,
|
||||
- dla uslug punktowych `apaczka` payload adresu zawiera aliasy identyfikatora punktu (`point`, `foreign_address_id`, `point_id`) dla nadania i odbioru,
|
||||
- `ApaczkaShipmentService::buildReceiverAddress(...)` sklada dane odbiorcy z fallbackami (formularz -> delivery -> punkt odbioru z `parcel_name` -> customer), a dla przesylek punktowych dodatkowo probuje uzupelnic adres punktu przez API `points`; przy dalszych brakach dopelnia minimum techniczne, aby nie blokowac tworzenia.
|
||||
- `ApaczkaShipmentService::buildOptionsPayload(array $formData): array` mapuje pola formularza (`weekend_delivery`) na klucze `option[]` w payloadzie API Apaczki (`order_send`). Klucz `19` = dostawa w sobote (InPost Paczka w Weekend); stala `OPTION_KEYS` trzyma mape pole_formularza -> id_opcji, walidacja boolean przez `filter_var(..., FILTER_VALIDATE_BOOL, FILTER_NULL_ON_FAILURE)`.
|
||||
- `GET /orders/{id}/shipment/{packageId}/status`:
|
||||
- `ShipmentController::checkStatus(Request): Response`,
|
||||
- wybiera providera po `shipment_packages.provider` i deleguje `checkCreationStatus(...)`.
|
||||
|
||||
@@ -993,7 +993,15 @@ Odwrocenie kierunku mapowania statusow w integracjach shopPRO i Allegro.
|
||||
- wspiera `--use-remote` i `--dry-run`.
|
||||
- Wykonano podmiane statusow na bazie zdalnej (`--use-remote`): zaktualizowano 30 zamowien.
|
||||
|
||||
|
||||
## 2026-04-17 — Phase 104: Apaczka Weekend Delivery Option
|
||||
|
||||
Dodanie opcji "Dostawa w weekend (sobota)" dla przesylek Apaczka + InPost paczkomat.
|
||||
|
||||
- **Zmiana:** W formularzu przygotowania przesylki dodano checkbox "Dostawa w weekend (sobota)" widoczny dla uslug Apaczki o `supplier=INPOST` i fladze paczkomatowej (`door_to_point=1` lub `point_to_point=1`).
|
||||
- **Mapping:** `ApaczkaShipmentService::buildOptionsPayload()` mapuje pole `weekend_delivery` na `option[19] = 1` w payloadzie API Apaczki (`order_send`). Stala `OPTION_KEYS = ['weekend_delivery' => 19]` trzyma mape pole -> id opcji.
|
||||
- **Testy:** `tests/Unit/ApaczkaShipmentServiceTest.php` rozszerzony o 3 testy jednostkowe `buildOptionsPayload` (weekend enabled / disabled / pusty formularz).
|
||||
- **DB:** Brak zmian w schemacie. Walidacja okna czasowego "Paczka w Weekend" pozostaje po stronie API Apaczki.
|
||||
- **Pliki:** `src/Modules/Shipments/ApaczkaShipmentService.php`, `resources/views/shipments/prepare.php`, `tests/Unit/ApaczkaShipmentServiceTest.php`
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user