feat(128): erli orders import

Phase 128 complete:
- add Erli /inbox order import with safe mark-read ACK
- add cron/manual import controls and sync state tracking
- map Erli orders into orderPRO aggregates with mapper tests and docs
This commit is contained in:
2026-05-15 23:54:22 +02:00
parent 3ea8cdc941
commit 2565d9b754
23 changed files with 1989 additions and 35 deletions

View File

@@ -33,6 +33,11 @@ use App\Modules\Settings\ApaczkaIntegrationRepository;
use App\Modules\Settings\CompanySettingsRepository;
use App\Modules\Settings\EmailMailboxRepository;
use App\Modules\Settings\EmailTemplateRepository;
use App\Modules\Settings\ErliApiClient;
use App\Modules\Settings\ErliIntegrationRepository;
use App\Modules\Settings\ErliOrderMapper;
use App\Modules\Settings\ErliOrderSyncStateRepository;
use App\Modules\Settings\ErliOrdersSyncService;
use App\Modules\Settings\InpostIntegrationRepository;
use App\Modules\Settings\IntegrationSecretCipher;
use App\Modules\Settings\ReceiptConfigRepository;
@@ -128,6 +133,15 @@ final class CronHandlerFactory
$this->db,
$automationService
);
$erliOrdersSyncService = new ErliOrdersSyncService(
new ErliIntegrationRepository($this->db, $this->integrationSecret),
new ErliOrderSyncStateRepository($this->db),
new ErliApiClient(),
new OrderImportRepository($this->db),
$ordersRepository,
new ErliOrderMapper(),
$automationService
);
return new CronRunner(
$cronRepository,
@@ -161,6 +175,9 @@ final class CronHandlerFactory
'shoppro_payment_status_sync' => new ShopproPaymentStatusSyncHandler(
$shopproPaymentSyncService
),
'erli_orders_import' => new ErliOrdersImportHandler(
$erliOrdersSyncService
),
'shipment_tracking_sync' => new ShipmentTrackingHandler(
new ShipmentTrackingRegistry([
new InpostTrackingService(