Przejdź do głównej zawartości

Import maszyny stanów

Import czyta plik JSON z eksportu i dokłada jego zawartość do tego sklepu. Do ostatniego kroku nic nie jest zapisywane, a usuwane nie jest nigdy.

Otwórz menu obok Utwórz maszynę stanów i wybierz Import.

Kreator importu z pustym polem pliku i przyciskiem wyboru

Po wczytaniu pliku sklep jest od razu z nim porównywany — a pasek kroków rozrasta się o to, co z tego porównania wyszło: jeden krok na każdą importowaną maszynę plus krok na nazwy, jeśli którejś brakuje.

Kreator po wczytaniu pliku: znaleziona jedna maszyna stanów

Każda maszyna z pliku jest wypisana razem z tym, co oznaczałby jej import: ile stanów i przejść powstanie oraz ile pozycji jest zablokowanych.

Krok wyboru maszyn z maszyną istniejącą i ostrzeżeniem o maszynie rdzenia

  • Zielony — maszyna już jest w tym sklepie i zostanie rozszerzona.
  • Niebieski — maszyna jest nowa i zostanie utworzona.

Maszyny, na których opiera się sam Shopware (order.state, order_transaction.state, order_delivery.state oraz maszyny płatności), mają tu ostrzeżenie: zmiany w nich wpływają na obsługę zamówień. Nadal można je zaimportować — zobacz Maszyny stanów rdzenia.

Każda zaznaczona maszyna dostaje własny krok, pokazujący dokładnie, co import z nią zrobi.

Krok maszyny: po lewej diagram, po prawej lista przejść

Diagram używa tych samych kolorów co lista:

KolorZnaczenie
ZielonyJuż w tym sklepie — zostanie bez zmian
NiebieskiNowe, z pliku — zostanie utworzone
Szary przerywanyOdznaczone — nie zostanie zaimportowane
CzerwonyKonflikt blokujący — trzeba go rozwiązać, żeby przejść dalej

Odznacz to, czego nie chcesz. Kliknięcie stanu albo etykiety akcji na diagramie przełącza go tak samo jak pole wyboru na liście — a odznaczenie stanu wyszarza przejścia, które od niego zależą, bo przejście potrzebuje obu końców.

Przycisk Tabela zamienia diagram na listę na pełną szerokość, Ukryj panel oddaje diagramowi całą szerokość, a powiększenie i Dopasuj pozwalają ująć dużą maszynę w kadrze. Płótno przesuwasz przeciągnięciem w dowolnym miejscu.

Konflikty wykryte przy porównaniu są wypisane w tym kroku razem z wyborem sposobu ich rozwiązania — na przykład czy istniejąca nazwa zostaje, czy jest zastępowana.

Shopware wymaga nazwy w domyślnym języku sklepu dla wszystkiego, co zapisuje. Jeśli plik jej nie niesie, kreator pyta o nią tutaj i nie pozwoli przejść dalej, dopóki każde oznaczone pole nie zostanie wypełnione.

Krok nazw: wiersz na obiekt, kolumna na język sklepu

Pojawiają się tu wyłącznie obiekty, które zostaną utworzone. To, co sklep już ma, zachowuje swoją nazwę — zmiana nazwy istniejącego obiektu to osobna decyzja, podejmowana przy konflikcie w poprzednim kroku.

Tabela ma wiersz na obiekt i kolumnę na każdy język sklepu. Wszystkie pola są edytowalne, więc to jest też miejsce, w którym nadasz nazwę, której plik nigdy nie niósł.

Plik pochodzi z innego sklepu, który nie musi mieć tych samych języków co ten. Reguły są takie:

W plikuCo robi kreator
Nazwa w Twoim języku domyślnymWstawia ją. Nie ma nic do zrobienia.
Brak nazwy w języku domyślnym, ale jest w innymWstawia tamtą nazwę jako podpowiedź, więc wystarczy ją potwierdzić albo nadpisać. Dopóki pole jest puste, nie da się przejść dalej.
Brak nazwy w jakimkolwiek językuPole zostaje puste i oznaczone. Trzeba ją wpisać — wcześniej kroku nie opuścisz.
Nic dla któregoś z pozostałych Twoich językówPole zostaje puste. To jest dozwolone: obiekt powstanie bez nazwy w tym języku.

Wymagany jest wyłącznie język domyślny, bo Shopware nie zapisze rekordu tłumaczonego bez niego. Pozostałe kolumny są opcjonalne i można je uzupełnić później na samym obiekcie.

Jeśli import nie tworzy niczego, co wymagałoby nazwy, krok w ogóle się nie pojawia.

Ostatni krok wypisuje, co zostanie zapisane.

Podsumowanie z wykazem tego, co powstanie

Przycisk Importuj zapisuje to. Każda maszyna idzie w osobnej transakcji, więc problem z jedną nie zostawia pozostałych w połowie. Tuż przed zapisem sklep jest jeszcze raz porównywany z plikiem po stronie serwera — jeśli coś się w międzyczasie zmieniło, import się zatrzymuje, zamiast to nadpisać.

  • Nie usuwa. Stan albo przejście, które są w tym sklepie, a nie ma ich w pliku, zostają.
  • Nie nadpisuje nazwy, chyba że wybierzesz to jawnie przy konflikcie.
  • Nie przestawia zamówień. Zmienia się tylko definicja maszyny; obiekty zostają w stanach, w których są.

Wynika z tego rzecz praktyczna: drugi import tego samego pliku niczego już nie zmienia.