This commit is contained in:
2026-04-12 01:35:19 +02:00
parent 91a8b85f38
commit d04e02020c
70 changed files with 8634 additions and 207 deletions

View File

@@ -41,7 +41,7 @@ Rozdzielenie mapowania statusow shopPRO na dwa niezalezne kierunki: PUSH (orderP
**DB:** Migracja 20260407_000079 — nowa tabela order_status_pull_mappings, pre-populate z istniejacych danych.
**Ochrona statusu przy re-imporcie:** Re-import z shopPRO nie nadpisuje `external_status_id` istniejacego zamowienia, CHYBA ZE obecny status to `nieoplacone` i shopPRO potwierdza platnosc (`payment_status = 2`). Wtedy status zmienia sie na zmapowany (np. `w_realizacji`) i importowane sa dane platnosci. W kazdym innym przypadku status jest zachowany — orderPRO jest master.
**Ochrona statusu przy re-imporcie:** Re-import z shopPRO nie nadpisuje `status_code` istniejacego zamowienia, CHYBA ZE obecny status to `nieoplacone` i shopPRO potwierdza platnosc (`payment_status = 2`). Wtedy status zmienia sie na zmapowany (np. `w_realizacji`) i importowane sa dane platnosci. W kazdym innym przypadku status jest zachowany — orderPRO jest master.
**Pliki:**
- database/migrations/20260407_000079_pull_status_mappings.sql
@@ -438,7 +438,7 @@ Odwrocenie kierunku mapowania statusow w integracjach shopPRO i Allegro.
- Zoptymalizowano zapytanie listy zamowien (`OrdersRepository::buildListSql()`):
- 4 correlated subqueries (items_count, items_qty, shipments_count, documents_count) zastapiono aggregating LEFT JOINami — eliminuje N+1 na kazdym wierszu listy.
- `OrdersRepository::canResolveMappedMedia()` — zamiana instance property na `static``information_schema` odpytywany co najwyzej raz na cykl PHP zamiast raz per instancja.
- Dodano migracje `20260314_000048_add_orders_performance_indexes.sql` — indeksy na `orders`: `source`, `external_status_id`, `ordered_at`, composite `(source, external_status_id)`.
- Dodano migracje `20260314_000048_add_orders_performance_indexes.sql` — indeksy na `orders`: `source`, `status_code`, `ordered_at`, composite `(source, status_code)`.
- Dodano SSL verification (`CURLOPT_SSL_VERIFYPEER => true`, `CURLOPT_SSL_VERIFYHOST => 2`, `CURLOPT_CAINFO`) do 4 klas ApiClient: AllegroApiClient (3 metody), AllegroOAuthClient, ShopproApiClient, ApaczkaApiClient. Fallback: `$_ENV['CURL_CA_BUNDLE_PATH']` → XAMPP cacert.pem → system CA bundle.
- Cron web throttle (`isWebCronThrottled()`) przeniesiony z `$_SESSION` do `app_settings` (klucz `cron_web_last_run_at`) — eliminuje wielokrotne uruchamianie crona przy wielu aktywnych sesjach.
- Deduplikacja migracji `000014``000014b` (kolizja z `create_product_integration_translations`).
@@ -815,7 +815,7 @@ Odwrocenie kierunku mapowania statusow w integracjach shopPRO i Allegro.
- Dodano `App\Modules\Settings\AllegroStatusMappingRepository`.
- Import pojedynczego zamowienia Allegro mapuje teraz status przez `allegro_order_status_mappings` (jesli istnieje wpis), zamiast fallbackowej translacji.
- Poprawiono prezentacje statusow na liscie zamowien:
- filtr statusu pokazuje etykiety biznesowe zamiast surowych kodow (`external_status_id`),
- filtr statusu pokazuje etykiety biznesowe zamiast surowych kodow (`status_code`),
- kody bez mapowania sa tylko formatowane technicznie do czytelnej postaci (`do_odbioru` -> `Do odbioru`).
- Dodano reczny import pojedynczego zamowienia Allegro z poziomu `Ustawienia > Integracje > Allegro`:
- endpoint `POST /settings/integrations/allegro/import-single`,
@@ -930,7 +930,7 @@ Odwrocenie kierunku mapowania statusow w integracjach shopPRO i Allegro.
- Rozszerzono `bin/deploy_and_seed_orders.php` o parametr `--profile=default|realistic`.
- Dodano realistyczny profil seedowania:
- wazone losowanie statusow i metod platnosci,
- spojne mapowanie `external_status_id` -> `payment_status` i `total_paid`,
- spojne mapowanie `status_code` -> `payment_status` i `total_paid`,
- bardziej realne reguly tworzenia wpisow `order_payments`, `order_shipments`, `order_documents`,
- historia statusow oparta na logicznych sciezkach przejsc (zamiast losowych skokow).
- Wykonano ponowne wdrozenie draftu i seed z profilem realistycznym:
@@ -984,11 +984,11 @@ Odwrocenie kierunku mapowania statusow w integracjach shopPRO i Allegro.
- aktywny panel `Szczegoly zamowienia`,
- pozostale panele (`Historia zmian`, `Przesylki`, `Platnosci`, `Dokumenty`) zawieraja tymczasowe puste boksy.
- Zmieniono seed zamowien (`bin/deploy_and_seed_orders.php`):
- `external_status_id` jest losowany z aktywnych statusow z tabeli `order_statuses` (zgodnie z konfiguracja w `Ustawienia > Statusy`),
- `status_code` jest losowany z aktywnych statusow z tabeli `order_statuses` (zgodnie z konfiguracja w `Ustawienia > Statusy`),
- dodano fallback do listy domyslnej, jesli tabela jest pusta/niedostepna,
- profil `realistic` ma fallback reguly finansowej dla niestandardowych statusow.
- Dodano skrypt serwisowy `bin/randomize_order_statuses.php`:
- losowo podmienia `orders.external_status_id` dla juz istniejacych zamowien na aktywne statusy z `order_statuses`,
- losowo podmienia `orders.status_code` dla juz istniejacych zamowien na aktywne statusy z `order_statuses`,
- aktualizuje tez `is_canceled_by_buyer` dla statusu `cancelled`,
- wspiera `--use-remote` i `--dry-run`.
- Wykonano podmiane statusow na bazie zdalnej (`--use-remote`): zaktualizowano 30 zamowien.