Przejdź do głównej zawartości

Order state sync

Gdy zamówienia z Mirakl trafią do Shopware, obsługujesz je jak każde inne zamówienie: kompletujesz, pakujesz, wysyłasz, odrzucasz, akceptujesz. Order state sync tłumaczy te zmiany stanów w Shopware z powrotem na właściwą akcję po stronie Mirakl, żeby operator i kupujący zawsze widzieli ten sam status co Ty.

W module Mirakl nie ma nic do klikania ręcznie — synchronizacja jest sterowana przez maszynę stanów zamówień Shopware.

  1. Otwórz zamówienie Shopware ze standardowej listy zamówień albo z listy Imported Orders (Dashboard → Quick Start → Orders).
  2. Zmień stan jak zwykle (status zamówienia, status dostawy lub status płatności — zależnie od tego, co masz w Reverse status mapping).
  3. Plugin wyłapuje zmianę, znajduje powiązane zamówienie Mirakl i wysyła do operatora odpowiednią akcję.
  4. Po potwierdzeniu przez operatora kolumna Mirakl Status na Imported Orders jest odświeżana, więc Shopware i Mirakl pokazują ten sam status.

Konfigurujesz to per połączenie w edytorze Reverse status mapping — otwórz go z Mirakl → Settings → Connections → menu kontekstowe wiersza → Reverse Status Mapping, albo z kroku 10 kreatora konfiguracji. Edytor ma trzy sekcje — Order state, Delivery state, Transaction state — każda wymienia wszystkie stany Shopware z polem wyboru obok.

Każdy stan Shopware można zmapować na jedną z opcji:

  • — żadna akcja (wartość domyślna; większość wierszy zostaw tak).
  • Accept (OR21) — akceptuj zamówienie po stronie Mirakl.
  • Ship (OR24) — oznacz zamówienie jako wysłane po stronie Mirakl.
  • Set tracking info - without shipment confirmation (OR23) — wyślij do Mirakl dane śledzenia bez jednoczesnego oznaczania zamówienia jako wysłanego.
  • Refuse (OR29) — odrzuć pozycje zamówienia.

Sensowne domyślne wartości są wypełnione z góry, ale możesz je nadpisać per połączenie — przydatne, gdy sprzedajesz u kilku operatorów z różnymi przepływami pracy (automatyczna vs ręczna akceptacja).

Typowa konfiguracja:

Akcja MiraklTypowy trigger w Shopware
Accept (OR21)Status zamówienia → W realizacji
Set tracking info - without shipment confirmation (OR23)Dostawa → Częściowo wysłane z danymi śledzenia
Ship (OR24)Dostawa → Wysłane
Refuse (OR29)Status zamówienia → Anulowane

Gdy uruchomisz akcję odrzucenia, plugin informuje operatora, że każda pozycja zamówienia została odrzucona. Bieżąca implementacja nie dołącza kodu powodu ani komentarza — wysyła wyłącznie flagę “nie zaakceptowano” dla każdej pozycji. Jeśli Twój operator wymaga kodu powodu, wykonaj odrzucenie ręcznie w panelu operatora.

Jeśli zmiana stanu w Shopware niesie metadane śledzenia (przewoźnik i numer paczki), plugin najpierw wysyła aktualizację śledzenia, a potem akcję wysyłki. Jeśli później ponowisz tę samą zmianę z tymi samymi danymi śledzenia, aktualizacja śledzenia zostanie pominięta (wykona się tylko akcja wysyłki); jeśli dane śledzenia się zmieniły (wysłałeś ponownie innym przewoźnikiem), wyśle się świeża aktualizacja śledzenia.

Przed każdym wywołaniem plugin sprawdza bieżący status zamówienia na Mirakl:

  • Ship / tracking pomijane, jeśli zamówienie jest już wysłane, odebrane lub zamknięte.
  • Refuse pomijane, jeśli zamówienie jest już odrzucone lub anulowane.
  • Accept dozwolone tylko wtedy, gdy zamówienie wciąż czeka na akceptację.

Jeśli więc proces w tle doręczy tę samą zmianę dwa razy (co może się zdarzyć przy powtórzeniach), nic złego się nie dzieje — drugie wywołanie zostanie rozpoznane jako brak operacji.

Po każdym pomyślnym wywołaniu zmiany stanu plugin ponownie pobiera zamówienie z Mirakl, żeby odczytać rzeczywisty status po akcji. To pewniejsze niż domyślanie się z odpowiedzi API — zawsze widzisz to, co operator faktycznie zrobił z żądaniem.

Jeśli status Mirakl wygląda na nieaktualny (np. operator zmienił go po swojej stronie), akcja Order refresh pobiera świeże dane dla pojedynczego zamówienia.