110 lines
3.3 KiB
Markdown
110 lines
3.3 KiB
Markdown
---
|
|
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*
|