Zalogowani klienci w Państwa sklepie internetowym
Wywołaj webhook tylko dla zalogowanych klientów przez proxy aplikacji w domenie sklepu i otrzymaj w Shopify Flow podpisany identyfikator klienta.
Wywołaj webhook ze swojego sklepu internetowego i dowiedz się, który klient go wysłał. Formularz zamówienia hurtowego, przycisk ponownego zamówienia na stronie konta B2B lub formularz zapytania dla zalogowanych klientów mogą uruchomić przepływ pracy w Shopify Flow, a przepływ ten otrzymuje identyfikator zalogowanego klienta. Shopify podpisuje ten identyfikator, dzięki czemu nikt nie może podszywać się pod innego klienta.
Jest to oparte na adresie URL serwera proxy aplikacji; zob. CORS, adres URL serwera proxy aplikacji oraz wywołania przeglądarki.
Skonfiguruj to
- Proszę otworzyć webhook i przejść do sekcji Ustawienia zaawansowane.
- W sekcji Ustawienia adresu URL proszę włączyć opcję Użyj adresu URL serwera proxy aplikacji. Adres URL webhooka znajduje się teraz w domenie Państwa sklepu, na przykład
https://your-store.com/apps/webhooks/abc123. - W sekcji Kto może wywołać ten webhook proszę wybrać jedną z trzech opcji:
| Opcja | Adres URL serwera proxy aplikacji | Bezpośredni adres URL aplikacji |
|---|---|---|
| Każdy, kto posiada adres URL | Sprawdza się w przypadku każdego | Dzieła |
| Wyłącznie za pośrednictwem domeny Państwa sklepu | Działa dla wszystkich, w tym dla gości | Odmowa z kodem 403 |
| Wyłącznie klienci zalogowani w Państwa sklepie | Działa w przypadku zalogowanych klientów; goście otrzymują komunikat 401 | Odmowa z kodem 403 |
- Zapisz. To ustawienie zostanie zastosowane przy następnym żądaniu.

Co sprawdza aplikacja
Każde żądanie przesyłane za pośrednictwem adresu URL serwera proxy aplikacji zawiera podpis od Shopify. Aplikacja sprawdza, w następującej kolejności:
- Podpis. Żądanie bez prawidłowego podpisu Shopify zostanie odrzucone z kodem błędu 401. Nikt nie jest w stanie go sfałszować, ponieważ Shopify generuje go na podstawie klucza tajnego Państwa aplikacji.
- Państwa sklep. Żądanie podpisane w imieniu innego sklepu zostaje odrzucone z kodem błędu 403.
- Zalogowany klient. W trybie Tylko klienci zalogowani do Państwa sklepu żądanie bez zalogowanego klienta zostanie odrzucone z kodem błędu 401 (kod
customer_login_required). Identyfikator klienta pochodzi z podpisu, a nie z treści żądania. - Bezpośredni adres URL. Niezależnie od zastosowanego ograniczenia bezpośredni adres URL aplikacji zwraca kod błędu 403 (
proxy_required), więc nikt nie może ominąć tych kontroli.
Odrzucony wniosek nigdy nie trafia do serwisu Shopify Flow i nie jest wliczany do limitu przewidzianego w Państwa planie.
Co otrzymuje Shopify Flow
Wyzwalacz Webhook oraz wyzwalacz Sync Webhook zawierają pole customerId: numeryczny identyfikator zalogowanego klienta, na przykład 7350001. Pole to pozostaje puste w przypadku gości oraz w przypadku każdego żądania, które nie zostało przesłane za pośrednictwem adresu URL serwera proxy aplikacji. Państwa zmapowane pola są przekazywane w zwykły sposób - proszę zapoznać się z sekcją Mapowanie danych użytkowych i zmienne w Shopify Flow.
Zadzwoń z Państwa punktu sprzedaży
Żądanie musi pochodzić ze strony Państwa sklepu, gdy klient jest zalogowany, tak aby przechodziło przez domenę Państwa sklepu. Proszę skopiować adres URL webhooka z aplikacji: Shopify umożliwia zmianę ścieżki proxy, więc Państwa adres może różnić się od podanego w przykładzie. Poniższy fragment kodu umieszczony w sekcji szablonu wysyła lokalizację firmy, dla której klient B2B dokonuje zakupu:
<script>
fetch('/apps/webhooks/abc123', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
companyLocationId: 'gid://shopify/CompanyLocation/{{ customer.current_location.id }}'
})
})
</script>Proszę przypisać pole 1 do companyLocationId, tak aby w ramach przepływu pracy lokalizacja była odbierana jako fieldOne.
Zarejestruj klienta w Shopify Flow
Shopify Flow ma dostęp do wszystkich informacji o kliencie, dlatego sprawdzenie tych danych powinno stanowić część procesu:
- Wyzwalacz: Wyzwalacz typu „Webhook” z sekcji Workflow Webhooks. Jeśli posiada Pan/Pani kilka webhooków, proszę dodać warunek: identyfikator webhooka jest równy identyfikatorowi wyświetlanemu w aplikacji.
- Proszę pobrać dane klienta za pomocą zapytania
id:{{customerId}}. Shopify Flow pobiera informacje o zalogowanym kliencie, w tym tagi i role w firmie. - Warunek: klient posiada tag
wholesale, a jeden z profili kontaktowych jego firmy posiada przypisanie roli, w którym identyfikator lokalizacji firmy jest równyfieldOne, a rola toOrdering onlylubLocation admin. - W takim przypadku: proszę wykonać odpowiednie czynności, na przykład utworzyć projekt zamówienia dla tej lokalizacji. W przeciwnym razie: proszę przerwać operację lub przekazać interfejsowi sklepu odpowiedź typu Odpowiedź synchroniczna, aby strona mogła poinformować klienta o przyczynie.
Warto wiedzieć
- Aby adres URL serwera proxy aplikacji działał, strona sklepu musi być dostępna. W przypadku sklepu chronionego hasłem serwer proxy odpowiada dopiero po wprowadzeniu hasła do strony sklepu.
- Goście otrzymują komunikat o błędzie 401, dlatego na tej stronie należy wyświetlić link do logowania.
- W sekcji „Historia” wyświetlany jest identyfikator klienta dla każdego żądania, a funkcja ponownego wysłania powoduje jego ponowne przesłanie.
- Gdy klient zwraca się z prośbą o usunięcie swoich danych, wysłane przez niego wpisy historyczne są usuwane.
