Jak połączyć Shopify z Shopify Flow

Jak połączyć Shopify z Shopify Flow

Skopiuj stronę

Odbieraj webhooki z innego sklepu Shopify lub własnej aplikacji, weryfikuj podpis HMAC i uruchamiaj nimi wyzwalacze Shopify Flow dla zamówień i klientów.

Shopify podpisuje własne webhooki oraz wywołania między aplikacjami przy użyciu tajnego klucza API Państwa aplikacji. To ustawienie pozwala na odbieranie webhooków z innego sklepu Shopify lub z Państwa własnej aplikacji oraz weryfikowanie ich dokładnie zgodnie z dokumentacją Shopify. Workflow Webhooks przekształca takie wywołanie w wyzwalacz Shopify Flow, dzięki czemu Państwa sklep może na nie zareagować: oznaczyć klienta, dodać notatkę do zamówienia, wysłać wewnętrzną wiadomość e-mail, zaktualizować metapole - czyli wykonać dowolną czynność, do której umożliwia Shopify Flow.

W niniejszym przewodniku opisano całą ścieżkę działania - Shopify wysyła dane, Workflow Webhooks je odbiera i weryfikuje, a Shopify Flow podejmuje odpowiednie działania - przy czym w każdym żądaniu sprawdzany jest podpis HMAC serwisu Shopify, dzięki czemu wyłącznie Shopify może uruchomić Państwa przepływ pracy.

Co można zbudować

  • Proszę skopiować zamówienie z drugiego sklepu Shopify do tego sklepu: proszę oznaczyć klienta, dodać notatkę lub uruchomić proces realizacji zamówienia.
  • Aby zareagować w Shopify Flow na temat, którego Shopify Flow sam nie oferuje jako wyzwalacza, należy zasubskrybować go za pomocą własnej aplikacji.
  • Zapewnij spójne działanie sklepu hurtowego i detalicznego bez konieczności tworzenia usługi pośredniczącej.

Typowe zdarzenia, które należy wysyłać: orders/create, products/update, customers/create, fulfillments/create.

Zanim zaczną Państwo

  • Webhooki Workflow Webhooks zainstalowane w Państwa sklepie Shopify.
  • Zainstalowano aplikację Shopify Flow, którą można pobrać bezpłatnie ze sklepu Shopify App Store.
  • Konto w serwisie Shopify z uprawnieniami do tworzenia webhooków.

Krok 1 - Utwórz webhook w sekcji Workflow Webhooks

  1. Proszę otworzyć sekcję Workflow Webhooks → Webhooks → Utwórz webhook i nadać mu nazwę, którą będą Państwo w stanie rozpoznać w Shopify Flow, na przykład Shopify events.
  2. W sekcji Uwierzytelnianie proszę wybrać opcję HMAC.
  3. W sekcji Dostawca podpisu proszę wybrać opcję Shopify. Aplikacja automatycznie wypełni pola „nagłówek”, „algorytm”, „podpisany ładunek” oraz „okno odtworzenia” - nie ma potrzeby konfigurowania żadnych innych ustawień.
  4. Na razie proszę pozostawić pole „secret” puste i kliknąć Zapisz. Proszę skopiować adres URL webhooka wyświetlony na stronie.

Informacje na temat pozostałych trybów uwierzytelniania można znaleźć w sekcji Uwierzytelnianie, a informacje dotyczące wyboru pól, które mają zostać przesłane do Shopify Flow - w sekcji Mapowanie danych użytkowych i zmienne w Shopify Flow.

Krok 2 - Dodaj punkt końcowy w Shopify

Proszę utworzyć subskrypcję webhooka w sklepie lub aplikacji wysyłającej, podając skopiowany adres URL, a następnie podpisać ją kluczem API tej aplikacji.

Jak znaleźć swój klucz tajny do logowania w Shopify

Klucz tajny API Państwa aplikacji / klucz tajny do podpisywania webhooków.

W dokumentacji Shopify dotyczącej podpisów webhooków znajdą Państwo dokładne sformułowania oraz zrzuty ekranu dotyczące Państwa konta.

Wklej ten klucz do pola Secret (Klucz) webhooka w sekcji Workflow Webhooks i zapisz zmiany. Od tego momentu każda dostawa z Shopify będzie weryfikowana, zanim trafi do Shopify Flow.

Co to sprawdza

Co Wartość
Nagłówek podpisu X-Shopify-Hmac-Sha256
Miejsce umieszczenia podpisu Cała wartość nagłówka
Co zostało podpisane {body}
Podpis HMAC-SHA256, zakodowany w formacie base64
Sygnatura czasowa Nie jest używane przez tego nadawcę
Ochrona przed ponownym odtworzeniem Brak - ten nadawca nie podpisuje znacznika czasu, więc każdy ważny podpis zachowuje swoją ważność
Sekret Należy użyć jako zwykły tekst. Proszę wkleić go dokładnie tak, jak przedstawił go nadawca

W podpisanej treści żądania {body} stanowi surową treść żądania, bajt po bajcie.

Żądanie, które nie spełnia któregokolwiek z tych warunków, jest odrzucane z kodem błędu 401, rejestrowane w sekcji Historia i rozwiązywanie problemów i nigdy nie uruchamia przepływu pracy.

Krok 3 - Utwórz proces w Shopify Flow

  1. W Shopify Flow proszę utworzyć przepływ pracy i wybrać wyzwalacz Workflow Webhooks.
  2. Proszę kliknąć opcję Rejestruj zdarzenia, a następnie wysłać zdarzenie testowe z Shopify (lub skorzystać z opcji Wyślij zdarzenie testowe w sekcji Workflow Webhooks), aby Shopify Flow rozpoznał strukturę Państwa danych.
  3. Każdy posiadany przez Państwa webhook uruchamia ten sam wyzwalacz w Shopify Flow, dlatego proszę dodać pierwszy warunek oparty na identyfikatorze webhooka, aby ograniczyć ten przepływ pracy wyłącznie do Shopify. Identyfikator ten jest widoczny na stronie webhooka.
  4. Proszę dodać swoje działania - oznaczyć klienta, dodać notatkę, wysłać wewnętrzną wiadomość e-mail, zaktualizować metapole.
Shopify Flow
W Shopify Flow wybierz opcję „Wybierz wyzwalacz”, otwórz sekcję Workflow Webhooks i wybierz opcję „Wyzwalacz webhook”.
Warunek w Shopify Flow: identyfikator webhooka jest równy identyfikatorowi jednego z webhooków
Pierwszy krok każdego przepływu pracy: warunek dotyczący identyfikatora webhooka, dzięki czemu przepływ pracy zostanie uruchomiony wyłącznie dla tego webhooka.
Gotowy przebieg procesu: wyzwalacz webhooka, warunek oparty na identyfikatorze webhooka, a następnie wysłanie wewnętrznej wiadomości e-mail w gałęzi „True”
Gotowy przepływ pracy: wyzwalacz, warunek oparty na identyfikatorze webhooka, a następnie Państwa akcja w gałęzi „True”.

Krok 4 - Przeprowadź test od początku do końca

Wywołaj rzeczywiste zdarzenie w Shopify. W sekcji Workflow Webhooks → Historia powinno pojawić się wywołanie o statusie Success. Jeśli podpis był nieprawidłowy, pojawi się zamiast tego wpis o niepowodzeniu wraz z przyczyną, a Weryfikacja podpisanych webhooków zawiera wyjaśnienie narzędzia do weryfikacji podpisu, które wskazuje dokładnie, który etap zakończył się niepowodzeniem.

Jedno wywołanie otwarte w sekcji „Historia” wraz z nagłówkami żądania, treścią, statusem, czasem trwania i identyfikatorami
Zrealizowane zdarzenie w module „Historia”: status „Powodzenie” oznacza, że Shopify Flow je zaakceptowało.
Podpis nie jest zgodny

W następującej kolejności: klucz tajny (najczęstsza przyczyna - dodatkowa spacja lub klucz z niewłaściwego środowiska), czy nadawca korzysta z klucza tajnego innego punktu końcowego oraz czy cokolwiek pomiędzy Shopify a aplikacją zmienia treść wiadomości. Podpisy obejmują surowe bajty, więc serwer proxy, który zmienia format JSON, powoduje ich uszkodzenie. Narzędzie do sprawdzania podpisów na stronie webhooka wyświetla dokładny tekst, który został podpisany.

Przy każdym żądaniu otrzymuję kod błędu 401

Proszę sprawdzić, czy uwierzytelnianie webhooka jest ustawione na HMAC z wybranym dostawcą Shopify, czy wpisano klucz tajny oraz czy Shopify wysyła dane na adres URL dokładnie tak, jak pokazuje to aplikacja, łącznie z kodem na końcu.

W historii nie ma żadnych wpisów

Żądanie nigdy nie dotarło. Proszę ponownie sprawdzić adres URL w Shopify oraz zapoznać się z dziennikiem dostarczania Shopify, aby sprawdzić, jaką odpowiedź otrzymał system. Kod 404 oznacza nieprawidłowy lub usunięty webhook, a kod 429 oznacza przekroczenie limitu wywołań przewidzianego w Państwa planie - zobacz Plany i sposób użytkowania.

Proces jest uruchamiany dla niewłaściwych zdarzeń

Każdy webhook w Państwa sklepie uruchamia ten sam wyzwalacz w Shopify Flow. Proszę dodać warunek oparty na identyfikatorze webhooka jako pierwszy krok przepływu pracy lub zawęzić zakres zdarzeń wysyłanych z Shopify.

Powiązane