3.3 KiB
3.3 KiB
phase, plan, status, completed
| phase | plan | status | completed |
|---|---|---|---|
| 57-payment-automation-event | 01 | complete | 2026-03-30 |
Phase 57 Plan 01: Payment Automation Event Summary
Event automatyzacji payment.status_changed z warunkiem payment_status — emisja z recznego dodania platnosci i cron sync shopPRO
Acceptance Criteria Results
| Criterion | Status | Notes |
|---|---|---|
| AC-1: Event payment.status_changed dostepny w formularzu | Pass | Opcja "Zmiana statusu platnosci" w dropdown zdarzenia |
| AC-2: Warunek payment_status dostepny w formularzu | Pass | Checkboxy: Nieoplacone, Czesciowo oplacone, Oplacone |
| AC-3: Event emitowany przy recznym dodaniu platnosci | Pass | trigger() w OrdersController::addPayment() po zapisie |
| AC-4: Event emitowany przy sync platnosci z shopPRO | Pass | trigger() w ShopproPaymentStatusSyncService po zmianie statusu |
| AC-5: Warunek filtruje poprawnie | Pass | evaluatePaymentStatusCondition porownuje new_payment_status z status_keys |
Files Created/Modified
| File | Change | Purpose |
|---|---|---|
| src/Modules/Automation/AutomationController.php | Modified | ALLOWED_EVENTS + payment.status_changed, ALLOWED_CONDITION_TYPES + payment_status, PAYMENT_STATUS_OPTIONS, parseConditions branch, paymentStatusOptions w widoku |
| src/Modules/Automation/AutomationService.php | Modified | evaluatePaymentStatusCondition() + branch w evaluateSingleCondition |
| src/Modules/Orders/OrdersController.php | Modified | AutomationService dep + trigger event w addPayment() |
| src/Modules/Settings/ShopproPaymentStatusSyncService.php | Modified | AutomationService dep + trigger event w syncSingleOrderPayment() |
| src/Modules/Cron/CronHandlerFactory.php | Modified | Przeniesienie tworzenia $automationService przed $shopproPaymentSyncService, przekazanie dep |
| routes/web.php | Modified | $automationService przekazany do OrdersController |
| resources/views/automation/form.php | Modified | Event label, warunek payment_status z checkboxami, paymentStatusOptions w JS data |
| public/assets/js/modules/automation-form.js | Modified | buildPaymentStatusCheckboxes(), opcja w addCondition + onConditionTypeChange |
| DOCS/ARCHITECTURE.md | Modified | Dokumentacja eventu i warunku |
| DOCS/TECH_CHANGELOG.md | Modified | Wpis Phase 57 |
Decisions Made
| Decision | Rationale | Impact |
|---|---|---|
| Warunek payment_status uzywa prostego porownania string (nie mapowanie jak shipment_status) | Statusy platnosci to proste wartosci 0/1/2, nie wymagaja mapowania wielopoziomowego | Prostsza implementacja, latwiejsze debugowanie |
| $automationService przeniesiony wyzej w CronHandlerFactory | ShopproPaymentSyncService potrzebuje go jako dep — musi byc utworzony wczesniej | Zmiana kolejnosci tworzenia obiektow w factory |
| Emisja eventu non-blocking (try/catch) | Blad automatyzacji nie powinien blokowac zapisu platnosci ani sync crona | Odpornosc na bledy regul |
Deviations from Plan
None — plan executed exactly as written.
Next Phase Readiness
Ready:
- Event payment.status_changed dziala z obu zrodel (reczne + cron)
- Warunek payment_status pozwala filtrowac po statusie
- Wszystkie istniejace akcje (send_email, issue_receipt, update_order_status, update_shipment_status) dzialaja z nowym eventem
Concerns:
- Brak — standardowy wzorzec automatyzacji
Blockers:
- None