--- phase: 86-apaczka-cod-bank-account plan: 01 subsystem: shipments tags: [apaczka, cod, api] requires: - phase: none provides: n/a provides: - Apaczka COD shipments include bank account number from company settings affects: [] tech-stack: added: [] patterns: [] key-files: created: [] modified: - src/Modules/Shipments/ApaczkaShipmentService.php key-decisions: - "Field name `bankaccount` per Apaczka API v2 docs (not `bank_account_number`)" - "Strip all non-digit chars from bank account (handles PL prefix and spaces)" patterns-established: [] duration: ~15min started: 2026-04-08T00:00:00Z completed: 2026-04-08T00:00:00Z --- # Phase 86 Plan 01: Apaczka COD Bank Account Summary **Naprawiono blad API Apaczka przy tworzeniu przesylki COD — dodano pole `bankaccount` z numerem konta z ustawien firmy do payloadu COD.** ## Performance | Metric | Value | |--------|-------| | Duration | ~15min | | Tasks | 1 completed | | Files modified | 1 | ## Acceptance Criteria Results | Criterion | Status | Notes | |-----------|--------|-------| | AC-1: Payload COD zawiera numer konta bankowego | Pass | Pole `bankaccount` z 26 cyframi z company_settings | | AC-2: Brak konta = czytelny blad | Pass | ShipmentException z komunikatem o uzupelnieniu konta | ## Accomplishments - Naprawiono blad API Apaczka "Wprowadzono niepoprawny numer konta bankowego w usludze pobranie" - Payload COD zawiera pole `bankaccount` z numerem konta oczyszczonym do samych cyfr - Brak numeru konta w ustawieniach firmy rzuca czytelny ShipmentException ## Files Created/Modified | File | Change | Purpose | |------|--------|---------| | `src/Modules/Shipments/ApaczkaShipmentService.php` | Modified | Dodano `bankaccount` do payloadu COD + walidacje braku konta | ## Decisions Made | Decision | Rationale | Impact | |----------|-----------|--------| | Pole `bankaccount` zamiast `bank_account_number` | Oficjalna dokumentacja Apaczka API v2 definiuje pole jako `bankaccount` (bez underscore) | Poprawne dzialanie COD | | `preg_replace('/[^0-9]/', '')` do czyszczenia numeru konta | Numer w bazie zawiera prefix PL i spacje (`PL22 2530...`), API wymaga 26 cyfr | Uniwersalne czyszczenie dowolnego formatu IBAN | ## Deviations from Plan ### Summary | Type | Count | Impact | |------|-------|--------| | Auto-fixed | 1 | Krytyczne — bledna nazwa pola API | ### Auto-fixed Issues **1. Bledna nazwa pola API `bank_account_number` -> `bankaccount`** - **Found during:** Testowanie na serwerze produkcyjnym - **Issue:** Pole `bank_account_number` nie jest rozpoznawane przez Apaczka API v2 - **Fix:** Zmieniono na `bankaccount` zgodnie z oficjalna dokumentacja API - **Verification:** Uzytkownik potwierdzil poprawne tworzenie przesylki COD ## Issues Encountered | Issue | Resolution | |-------|------------| | `uploadOnSave: false` — plik nie synchronizowal sie automatycznie z serwerem | Reczny upload przez FTP curl | | Numer konta w bazie z prefixem PL i spacjami | Regex `[^0-9]` usuwa wszystko poza cyframi | | Nazwa pola API `bank_account_number` niepoprawna | Sprawdzono oficjalna dokumentacje — prawidlowe pole to `bankaccount` | ## Next Phase Readiness **Ready:** - Przesylki COD przez Apaczke dzialaja poprawnie **Concerns:** - Brak **Blockers:** - None --- *Phase: 86-apaczka-cod-bank-account, Plan: 01* *Completed: 2026-04-08*