feat(129): erli status mapping sync

Phase 129 complete:
- Add Erli pull/push status mapping tables, seeds and repositories
- Wire Erli status sync cron for inbox pull and manual-only push
- Add tabbed Erli settings UI, tests and documentation

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
2026-05-16 00:27:08 +02:00
parent c127ebf04d
commit 7972bb9fa4
28 changed files with 2021 additions and 57 deletions

View File

@@ -863,6 +863,12 @@ return [
'erli' => [
'title' => 'Integracja Erli',
'description' => 'Konfiguracja globalnego polaczenia z marketplace Erli.',
'tabs' => [
'label' => 'Zakladki integracji Erli',
'integration' => 'Integracja',
'statuses' => 'Statusy',
'settings' => 'Ustawienia',
],
'config' => [
'title' => 'Konfiguracja API',
],
@@ -882,6 +888,10 @@ return [
'orders_fetch_enabled' => 'Wlacz automatyczny import zamowien',
'orders_fetch_start_date' => 'Data startu importu',
'orders_import_interval_minutes' => 'Interwal importu (minuty)',
'status_sync_direction' => 'Kierunek synchronizacji statusow',
'status_sync_direction_pull' => 'Erli -> orderPRO',
'status_sync_direction_push' => 'orderPRO -> Erli',
'status_sync_interval_minutes' => 'Interwal synchronizacji statusow (minuty)',
],
'api_key' => [
'saved' => 'Klucz API jest zapisany. Pozostaw pole puste, aby nie zmieniac.',
@@ -891,6 +901,29 @@ return [
'account_label' => 'Opcjonalna nazwa widoczna w hubie integracji.',
'orders_fetch_start_date' => 'Opcjonalnie pominie zdarzenia starsze niz podana data, jesli payload Erli zawiera date zamowienia.',
'orders_import_interval_minutes' => 'Dotyczy zadania cron `erli_orders_import`. Zakres: 1-1440 minut.',
'status_sync_direction' => 'Pull pobiera statusy przez inbox. Push wysyla reczne zmiany statusu z orderPRO do Erli.',
'status_sync_interval_minutes' => 'Dotyczy zadania cron `erli_status_sync`. Zakres: 1-1440 minut.',
],
'statuses' => [
'pull_title' => 'Mapowanie przy imporcie (Erli -> orderPRO)',
'pull_description' => 'Przypisz surowe statusy Erli do statusow orderPRO. Nieznane statusy z inboxa beda dopisywane automatycznie po imporcie.',
'push_title' => 'Mapowanie przy wysylce (orderPRO -> Erli)',
'push_description' => 'Przypisz statusy orderPRO do statusow Erli uzywanych przy recznej zmianie statusu i cron push.',
'empty_pull' => 'Brak statusow Erli do mapowania. Uruchom migracje lub import, aby zasilic liste.',
'empty_push' => 'Brak statusow Erli do mapowania. Uruchom migracje, aby zasilic liste.',
'fields' => [
'erli_status' => 'Status Erli',
'orderpro_status' => 'Status orderPRO',
],
'actions' => [
'save_pull' => 'Zapisz mapowanie importu',
'save_push' => 'Zapisz mapowanie wysylki',
],
'flash' => [
'saved_pull' => 'Mapowanie importu statusow Erli zostalo zapisane.',
'saved_push' => 'Mapowanie wysylki statusow Erli zostalo zapisane.',
'save_failed' => 'Nie udalo sie zapisac mapowan statusow Erli.',
],
],
'status' => [
'secret' => 'Sekret API',
@@ -914,6 +947,7 @@ return [
],
'validation' => [
'orders_fetch_start_date_invalid' => 'Data startu importu musi miec format RRRR-MM-DD.',
'status_sync_direction_invalid' => 'Wybierz poprawny kierunek synchronizacji statusow Erli.',
],
],
'inpost' => [