Spis treści
- Wybierz topiki, które zasługują, by ci przerwać
- Krok 1 — Utwórz kanał
- Krok 2 — Dodaj webhooka w Shopify
- Krok 3 — Do szablonu tylko te pola, które naprawdę czytasz
- Krok 4 — Routing po topiku za pomocą warunku
- Budź mnie tylko przy dużych zamówieniach
- Czego to nie robi
- Najczęstsze pytania
- Czy potrzebuję do tego aplikacji Shopify?
- Czy magazyn może widzieć zamówienia, nie widząc mojego panelu Shopify?
- Czy powinienem umieszczać nazwiska klientów w powiadomieniu?
- Czy dostanę telefon przy chargebacku?
- Podsumowanie
- Powiązane treści
Maile o zamówieniach od Shopify przychodzą wtedy, gdy twojej aplikacji pocztowej zachce się zsynchronizować, lądują w folderze, który odfiltrowałeś, i wyglądają identycznie, czy zamówienie było na 12 €, czy na 1200 €. Jeśli prowadzisz sklep sam, to zły kształt sygnału.
Webhook to naprawia. Shopify wyśle każde zamówienie POST-em na wybrany przez ciebie adres, a Echobell zamieni ten POST w powiadomienie, którego głośność ustalasz ty.
Wybierz topiki, które zasługują, by ci przerwać
Shopify nazywa typy zdarzeń webhooków topikami. Te cztery wystarczą większości jednoosobowych sklepów:
| Topik | Co oznacza | Pilność |
|---|---|---|
orders/create | Złożono zamówienie. | Zwykła |
orders/paid | Płatność przeszła. Użyj tego, jeśli liczy się tylko pieniądz, który naprawdę dotarł. | Zwykła |
orders/cancelled | Klient anulował. Warto wiedzieć, zanim spakujesz. | Czasowo krytyczna |
refunds/create | Wystawiono zwrot. | Czasowo krytyczna |
Subskrybuj orders/create albo orders/paid, nie oba — chyba że naprawdę chcesz dwa powiadomienia na sprzedaż. Dla większości sklepów uczciwszy jest orders/paid.
Krok 1 — Utwórz kanał
Utwórz w Echobell kanał o nazwie w rodzaju „Zamówienia Shopify", skopiuj jego adres webhooka i włącz Tylko POST. Shopify zawsze wysyła POST-em.
Jeśli chcesz osobny, głośniejszy kanał na anulowania i zwroty, utwórz go teraz i ustaw jako czasowo krytyczny.
Krok 2 — Dodaj webhooka w Shopify
W panelu Shopify przejdź do Ustawienia → Powiadomienia → Webhooki → Utwórz webhooka. Wybierz topik, ustaw format na JSON i wklej adres swojego kanału.
Przy zapisie Shopify wysyła testowy payload. Jeśli telefon zawibruje, droga działa.
Krok 3 — Do szablonu tylko te pola, które naprawdę czytasz
Payloady zamówień Shopify są długie — ponad sto pól na zamówienie. Potrzebujesz tylko kilku:
Tytuł
Nowe zamówienie #{{order_number}} · {{total_price}} {{currency}}
Treść
{{customer.first_name}} {{customer.last_name}}
{{line_items[0].title}}
line_items to tablica, więc line_items[0] to pierwsza pozycja. Szablony Echobell obsługują dostęp przez indeks, ale nie ma pętli: zamówienie na trzy pozycje pokaże pierwszą i nic więcej. Jeśli to istotne, dopisz obok liczbę:
{{line_items[0].title}} · łącznie {{line_items.length}} pozycji
W przeciwieństwie do Stripe Shopify wysyła total_price jako łańcuch dziesiętny — "49.00", nie 4900 — więc czyta się poprawnie bez żadnej matematyki.
Krok 4 — Routing po topiku za pomocą warunku
Jeśli skierujesz kilka topików na jeden kanał, Shopify powie w nagłówku, który to:
header["x-shopify-topic"] == "orders/paid"
To najczystszy sposób rozdzielenia zachowań bez tworzenia webhooka na kanał w panelu.
Budź mnie tylko przy dużych zamówieniach
Schemat, którego naprawdę chce większość właścicieli sklepów: wszystkie zamówienia idą na cichy kanał, a tylko te powyżej progu na głośny.
Utwórz drugi kanał, ustaw go jako czasowo krytyczny, skieruj na niego kolejnego webhooka orders/paid i nadaj mu warunek:
total_price > 500
Teraz zwykły dzień to szum w tle, a zamówienie za 900 € to coś, co czujesz.
Czego to nie robi
Brak weryfikacji HMAC. Shopify podpisuje każdego webhooka nagłówkiem X-Shopify-Hmac-Sha256. Echobell go nie weryfikuje, więc adres twojego kanału to jedyna rzecz trzymająca obcych z dala. Trzymaj go w tajemnicy, zostaw włączone Tylko POST, a jeśli sfałszowane powiadomienie o zamówieniu wyrządziłoby realną szkodę, postaw z przodu własny endpoint, który zweryfikuje HMAC i dopiero wywoła Echobell.
Shopify może dostarczyć tego samego webhooka dwa razy. Ponawia przy niepowodzeniu, a ponowienia nie są deduplikowane. Traktuj powiadomienie jako zachętę do zajrzenia w zamówienie, nie jako licznik zamówień. Źródłem prawdy jest twój panel Shopify.
Topiki magazynowe szybko robią się hałaśliwe. inventory_levels/update odpala przy każdym ruchu stanu, łącznie z twoimi własnymi edycjami. Jeśli chcesz alertów o niskim stanie, filtruj ostro, bo inaczej pożałujesz przed obiadem.
Najczęstsze pytania
Czy potrzebuję do tego aplikacji Shopify?
Nie. Webhooki w Ustawienia → Powiadomienia są wbudowane w panel i nie wymagają aplikacji, konta partnerskiego ani kodu.
Czy magazyn może widzieć zamówienia, nie widząc mojego panelu Shopify?
Tak. Udostępnij im kanał. Dostają powiadomienia i nic więcej — bez dostępu do panelu i bez danych klientów poza tym, co zawiera twój szablon.
Czy powinienem umieszczać nazwiska klientów w powiadomieniu?
To twoja decyzja i warto podjąć ją świadomie. Wszystko, co jest w szablonie, pojawia się na zablokowanym ekranie. Numer zamówienia i kwota zwykle wystarczą, żeby zadziałać.
Czy dostanę telefon przy chargebacku?
Spory w Shopify Payments przychodzą topikiem disputes/create w sklepach korzystających z Shopify Payments. Skieruj go na kanał połączeniowy — to jedyne zdarzenie zamówieniowe z terminem.
Podsumowanie
Jeden webhook, jeden szablon i warunek, jeśli chcesz wersję głośną. Zajmuje jakieś pięć minut i zastępuje odświeżanie strony zamówień.
Pobierz Echobell na iPhone'a albo weź go z Google Play, a potem złóż testowe zamówienie i zobacz, jak dociera przed mailem potwierdzającym.