Files
orderPRO/.paul/phases/46-allegro-status-push/46-01-SUMMARY.md
2026-03-28 15:04:35 +01:00

6.0 KiB

phase, plan, subsystem, tags, requires, provides, affects, tech-stack, key-files, key-decisions, patterns-established, duration, started, completed
phase plan subsystem tags requires provides affects tech-stack key-files key-decisions patterns-established duration started completed
46-allegro-status-push 01 api
allegro
status-sync
cron
mappings
phase provides
45-shoppro-status-push orderPRO to external marketplace status push pattern
Allegro status push from orderPRO manual status changes
Active orderPRO_to_allegro direction in integration settings
Unit coverage for core push scenarios
settings
cron
integrations
added patterns
reverse status mapping
push cursor tracking
api retry on 401
created modified
.paul/phases/46-allegro-status-push/46-01-SUMMARY.md
tests/Unit/AllegroStatusSyncServiceTest.php
src/Modules/Settings/AllegroStatusSyncService.php
src/Modules/Settings/AllegroApiClient.php
src/Modules/Settings/AllegroStatusMappingRepository.php
src/Modules/Settings/AllegroOrderSyncStateRepository.php
src/Modules/Cron/CronHandlerFactory.php
resources/views/settings/allegro.php
resources/lang/pl.php
DOCS/ARCHITECTURE.md
DOCS/TECH_CHANGELOG.md
Push only manual status changes (change_source=manual) to avoid sync loops.
Reuse integration_order_sync_state with last_status_pushed_at cursor for incremental push.
Retry once after token refresh on ALLEGRO_HTTP_401.
First-match-wins reverse mapping: orderpro_status_code -> allegro_status_code.
Per-order push result aggregation: pushed, skipped, failed.
~4h 2026-03-28T12:20:50+01:00 2026-03-28T13:20:00+01:00

Phase 46 Plan 01: Allegro Status Push Summary

orderPRO to Allegro status synchronization was implemented end-to-end and enabled in UI, with tests and documentation updates.

Performance

Metric Value
Duration ~4h
Started 2026-03-28T12:20:50+01:00
Completed 2026-03-28T13:20:00+01:00
Tasks 3 completed
Files modified 10

Acceptance Criteria Results

Criterion Status Notes
AC-1: Cron pushes orderPRO manual status changes to Allegro Pass Implemented in AllegroStatusSyncService with API call, counters, and cursor updates.
AC-2: Missing mapping does not stop processing Pass Unmapped statuses are counted as skipped; batch continues.
AC-3: orderPRO -> Allegro direction active in UI Pass Disabled flag removed, option is selectable and persisted by existing settings flow.

Verification Results

Command Result
php -l src/Modules/Settings/AllegroStatusSyncService.php PASS
php -l src/Modules/Settings/AllegroApiClient.php PASS
php -l src/Modules/Settings/AllegroStatusMappingRepository.php PASS
php -l src/Modules/Settings/AllegroOrderSyncStateRepository.php PASS
php -l src/Modules/Cron/CronHandlerFactory.php PASS
php -l tests/Unit/AllegroStatusSyncServiceTest.php PASS
C:/xampp/php/php.exe vendor/bin/phpunit --filter AllegroStatusSyncServiceTest --testdox PASS (4 tests, 39 assertions)
sonar-scanner PASS (analysis successful; Quality Gate failed due existing/new issues tracked in DOCS/todo.md)

Accomplishments

  • Implemented real push path orderpro_to_allegro in sync service.
  • Added Allegro API fulfillment status update method and integrated it into cron flow.
  • Added reverse status mapping and push cursor support.
  • Enabled the direction in Allegro settings UI and adjusted PL hint text.
  • Added unit tests for success, skipped, failure, and 401 retry behavior.
  • Updated architecture and technical changelog docs.

Files Created/Modified

File Change Purpose
src/Modules/Settings/AllegroStatusSyncService.php Modified Added orderPRO->Allegro push execution and result aggregation.
src/Modules/Settings/AllegroApiClient.php Modified Added PUT fulfillment status endpoint wrapper.
src/Modules/Settings/AllegroStatusMappingRepository.php Modified Added reverse map builder for push direction.
src/Modules/Settings/AllegroOrderSyncStateRepository.php Modified Added read/write support for last_status_pushed_at.
src/Modules/Cron/CronHandlerFactory.php Modified Injected dependencies for new push logic and shared sync state repository.
resources/views/settings/allegro.php Modified Enabled orderPRO->Allegro direction option.
resources/lang/pl.php Modified Updated direction hint text (no "soon" wording).
tests/Unit/AllegroStatusSyncServiceTest.php Created Added tests for key push flow behaviors.
DOCS/ARCHITECTURE.md Modified Documented active push direction and API client method.
DOCS/TECH_CHANGELOG.md Modified Logged technical change and rationale.

Deviations from Plan

Type Count Impact
Scope additions 1 Low
Deferred 1 Low
  • Scope addition: src/Modules/Cron/CronHandlerFactory.php was updated to wire dependencies for the new service behavior (not listed as a direct plan file, but required to activate runtime flow).
  • Plan file listed src/Modules/Settings/AllegroIntegrationController.php as a target, but no code change was needed there because existing save flow already persisted allegro_status_sync_direction.
  • Deferred: Sonar Quality Gate remediation intentionally postponed; full issue list captured in DOCS/todo.md.

Key Patterns and Decisions

Decision Rationale Impact
Manual-only push (change_source=manual) Prevent import/sync feedback loops Safe bidirectional architecture
Cursor-based push (last_status_pushed_at) Incremental processing and bounded batches Better cron performance and idempotence
Retry once on 401 after token refresh Recover from expired access token Improved operational resilience

Next Phase Readiness

Ready:

  • v1.8 milestone scope delivered for phase 46.
  • Operational status push path to Allegro can be validated in production cron logs.

Concerns:

  • Sonar issues remain open and are tracked in DOCS/todo.md.

Blockers:

  • None.