# Shopify + Brew

Uruchamiaj automatyzacje Brew zdarzeniami Shopify dotyczącymi klientów, zamówień, finalizacji zakupu i realizacji zamówień. Na ich podstawie działają sekwencje powitalne, potwierdzenia zakupu, przypomnienia o porzuconym koszyku i powiadomienia o wysyłce.

Kanoniczny adres URL: https://brew.new/pl/browse/integrations/shopify

- Kierunek danych: Import danych
- Połączenie: Sekret webhooka
- Wyzwalacze zdarzeń e-commerce

## Dostępne funkcje

- **Wyzwalacze zdarzeń**: Uruchamiaj automatyzacje Brew zdarzeniami Shopify dotyczącymi klientów, zamówień, finalizacji zakupu i realizacji zamówień. Na ich podstawie działają sekwencje powitalne, potwierdzenia zakupu, przypomnienia o porzuconym koszyku i powiadomienia o wysyłce.

## Zamień zdarzenia ze sklepu w przydatne e-maile

Połącz Shopify, aby wysyłać e-maile spójne z marką, gdy klient zakłada konto, zamówienie zostaje opłacone, rozpoczyna się finalizacja zakupu lub przesyłka zostaje nadana. Brew obsługuje 13 typów zdarzeń webhooków Shopify dotyczących klientów, zamówień, finalizacji zakupu i realizacji zamówień.

Konfiguracja korzysta z webhooków, które tworzysz w panelu administracyjnym Shopify. Nie potrzebujesz aplikacji Shopify, client ID ani OAuth. Za zamówienia, płatności i realizację zamówień nadal odpowiada Shopify. Brew tworzy i wysyła e-maile.


## Co możesz zbudować

- E-maile powitalne dla klientów: Shopify wysyła zdarzenie customers/create, gdy w sklepie zostanie utworzony rekord klienta.
- Potwierdzenia zamówień i płatności: Shopify wysyła zdarzenie orders/create, gdy klient złoży zamówienie, a orders/paid – gdy płatność zostanie pobrana. Oba zawierają pola orderNumber, totalPrice, currency i financialStatus. Do każdej wiadomości wybierz jedno z tych zdarzeń, aby uniknąć duplikatów.
- Powiadomienia o anulowaniu: Shopify wysyła zdarzenie orders/cancelled, gdy zamówienie zostanie anulowane. Zdarzenie zawiera numer zamówienia i status płatności.
- Powiadomienia o wysyłce: zdarzenie fulfillments/create zawiera pola trackingNumber i trackingUrl, jeśli realizacja zamówienia je ma. Przy wysyłce zamówienia pojawia się też zdarzenie orders/fulfilled, ale bez pól śledzenia przesyłki, więc do każdego e-maila o wysyłce wybierz jeden wyzwalacz.
- E-maile w sprawie realizacji zamówienia: Shopify wysyła zdarzenie fulfillments/update, gdy realizacja zamówienia się zmienia. Pole fulfillmentStatus to status przetwarzania realizacji, np. pending, success lub failure, a nie potwierdzenie dostawy. Jeśli chcesz wysłać podziękowanie lub prośbę o opinię po dostawie, wywołaj własne zdarzenie Brew dopiero wtedy, gdy Twoja aplikacja potwierdzi dostawę.
- Przypomnienia o porzuconym koszyku: Shopify wysyła zdarzenie checkouts/create, gdy rozpoczyna się finalizacja zakupu. Zdarzenie może zawierać pole abandonedCheckoutUrl z linkiem pozwalającym wrócić do finalizacji zakupu.
- Skoordynuj e-maile z powiadomieniami, które Shopify wysyła klientom, aby klient nie dostał tej samej wiadomości dwa razy – od Shopify i od Brew.

## Przypomnienia o porzuconym koszyku wymagają sprawdzenia stanu

Shopify wysyła zdarzenie checkouts/create w chwili rozpoczęcia finalizacji zakupu, a nie jej porzucenia. Sekwencja przypomnień startuje w tym momencie i czeka. Złożenie zamówienia nie zatrzymuje uruchomienia, które już trwa.

Po kroku „Czekaj” warunek odczytuje bieżące pola kontaktu, np. shopify_last_order_status i shopify_last_order_at. Opisują one ostatnie zamówienie, o którym wie Brew, a nie tę konkretną finalizację zakupu, więc nie dowodzą, że zakończyła się ona zamówieniem.

Shopify wysyła zdarzenie checkouts/update przy każdej zmianie w finalizacji zakupu, a nie po upływie określonego czasu, więc samo w sobie nie sprawdzi się jako drugie przypomnienie wysyłane o zaplanowanej porze.

Finalizacja zakupu bez adresu e-mail nie uruchamia automatyzacji, chyba że Brew zna już adres e-mail dla tego samego identyfikatora klienta Shopify. Przed publikacją przetestuj zarówno finalizację zakupu, która kończy się zamówieniem, jak i taką, która się nim nie kończy.


## Skonfiguruj Shopify w Brew

- Otwórz Integracje, wybierz Shopify i kliknij „Wygeneruj adres URL webhooka”.
- Wpisz swoją domenę myshopify.com, np. acme.myshopify.com, a nie własną domenę sklepu. Brew porównuje ją z nagłówkiem X-Shopify-Shop-Domain w każdym webhooku.
- W panelu administracyjnym Shopify otwórz Ustawienia > Powiadomienia i przewiń do sekcji Webhooki. Shopify wysyła dany typ zdarzenia tylko do webhooka utworzonego właśnie dla niego, więc utwórz osobny webhook dla każdego zdarzenia, którego chcesz używać. W polu Format wybierz JSON, wklej adres URL Brew i wybierz najnowszą wersję API.
- Skopiuj sekret podpisujący widoczny na dole sekcji Webhooki. Ten sam sekret podpisuje wszystkie webhooki sklepu. Wklej go w Brew i kliknij Połącz.
- Otwórz menu przy każdym utworzonym webhooku i wybierz „Wyślij test”. Po pierwszym teście status w Brew zmieni się z „Czeka na zdarzenie testowe” na „Połączona”, a każdy test oznacza swoje zdarzenie jako odebrane. Test służy tylko do weryfikacji webhooka. Brew nie dodaje kontaktu i nie uruchamia automatyzacji.
- Kliknięcie Połącz tworzy wyzwalacze dla wszystkich 13 typów zdarzeń. Nie ma przełącznika do włączania lub wyłączania zdarzeń, ale typ zdarzenia, dla którego nie ma webhooka w Shopify, nigdy nie zostanie wysłany.
- Utwórz automatyzację, wybierz dla niej zdarzenie Shopify i wyślij test, dopóki jest jeszcze wersją roboczą. Po nadejściu pasującego zdarzenia uruchamiają się tylko aktywne automatyzacje.

## Obsługiwane zdarzenia Shopify

Brew obsługuje 13 typów zdarzeń webhooków:

- customers/create
- customers/update
- customers/delete
- customers/enable
- customers/disable
- orders/create
- orders/paid
- orders/cancelled
- orders/fulfilled
- checkouts/create
- checkouts/update
- fulfillments/create
- fulfillments/update

## Synchronizacja kontaktów i personalizacja

Każde zweryfikowane zdarzenie z prawdziwym adresem e-mail tworzy lub aktualizuje kontakt w Brew dopasowany po adresie e-mail – niezależnie od tego, czy jakaś automatyzacja korzysta z tego zdarzenia. Jeśli zdarzenie zawiera odpowiednie dane, Brew ustawia imię, nazwisko oraz pola shopify_customer_id i shopify_shop_domain.

Zdarzenia zamówień aktualizują pola shopify_last_order_number, shopify_last_order_total, shopify_last_order_currency i shopify_last_order_at. Zdarzenia orders/create, orders/paid i orders/cancelled ustawiają też pole shopify_last_order_status, a orders/fulfilled – pole shopify_last_fulfillment_status. Zdarzenia realizacji zamówień aktualizują pola shopify_last_tracking_number, shopify_last_tracking_url i shopify_last_fulfillment_status. Zdarzenia finalizacji zakupu aktualizują pole shopify_last_checkout_url.

Zdarzenia customers/delete, customers/disable i customers/enable ustawiają pole shopify_account_status na deleted, disabled lub active. Brew nie usuwa ani nie wypisuje kontaktu, więc tam, gdzie to ważne, filtruj według tego pola.

W tagach personalizacji korzystaj ze schematu danych zadeklarowanego dla wybranego zdarzenia. Każde zdarzenie zawiera pola email, firstName, lastName, currency, shopDomain i createdAt, jeśli są dostępne. Zdarzenia zamówień dodają pola orderNumber, totalPrice, financialStatus i fulfillmentStatus. Zdarzenia finalizacji zakupu dodają pola totalPrice i abandonedCheckoutUrl. Zdarzenia realizacji zamówień dodają pola trackingNumber, trackingUrl i fulfillmentStatus.

Pole totalPrice to kwota w walucie zamówienia w takiej postaci, w jakiej wysyła ją Shopify, np. „49.95”, a nie w centach. Dane zdarzeń nie zawierają pozycji zamówienia, a identyfikatory obiektów Shopify nie są tagami personalizacji.

Webhooki klientów w Shopify nie zawierają już zgody marketingowej, więc Brew jej nie otrzymuje. Zapisuj zgodę osobno i sprawdzaj ją przed wysyłkami promocyjnymi.


## Czy Brew obsługuje zwroty i zdarzenia koszyka?

Nie. Shopify nie ma typu zdarzenia orders/refunded, a jego webhook zwrotów nie zawiera danych klienta. Zdarzenie carts/update nie identyfikuje odbiorcy, więc Brew nie może na jego podstawie bezpiecznie wysyłać e-maili. Nie dodawaj webhooków dla tych typów zdarzeń.


## Dlaczego zdarzenie jest widoczne, a e-mail nie został wysłany?

Odebranie zdarzenia i wysłanie e-maila to osobne kroki. Upewnij się, że pasująca automatyzacja jest aktywna, a potem przejrzyj jej filtry i historię uruchomień, sprawdź, czy odbiorca może otrzymać wiadomość, i skontroluj domenę wysyłkową. Zdarzenie wysłane przyciskiem „Wyślij test” jest widoczne jako zdarzenie testowe i nigdy nie uruchamia automatyzacji. Zdarzenie bez adresu e-mail dotyczące nieznanego klienta jest zapisywane z nieustalonym odbiorcą.


## Ograniczenia i rozwiązywanie problemów

- Brew nie może zmieniać klientów, zamówień ani realizacji zamówień w Shopify.
- Błąd 401 z kodem shop_domain_mismatch oznacza, że domena wpisana w Brew nie pasuje do sklepu, który wysyła webhook. Połącz Shopify ponownie, podając kanoniczną domenę myshopify.com.
- Jeśli wymienisz sekret podpisujący w Shopify, połącz Shopify ponownie, podając nową wartość. Brew wymaga, aby sekret miał co najmniej 16 znaków.
- Jeśli wyzwalacz ma status „Jeszcze bez zdarzeń”, utwórz w Shopify webhook dla tego typu zdarzenia i wyślij z niego test.
- Webhooki zamówień mogą nie zawierać imienia i nazwiska klienta. Dla pola firstName ustaw w tagu personalizacji wartość zastępczą, np. domyślne powitanie.
- Sprawdź zgody i cel każdego e-maila. Synchronizacja klientów Shopify nie upoważnia do wysyłek promocyjnych.

## Źródła i instrukcje konfiguracji

- [Instrukcja konfiguracji Shopify](https://docs.brew.new/integrations/import/shopify)
- [Zbuduj automatyzację](https://docs.brew.new/create-emails/build-an-automation)
- [Tagi personalizacji](https://docs.brew.new/create-emails/merge-tags)
- [Co możesz wysyłać przez Brew](https://docs.brew.new/get-started/what-you-can-send)
- [Webhooki Shopify](https://shopify.dev/docs/apps/build/webhooks)

## Powiązane

- [Wszystkie integracje](https://brew.new/pl/browse/integrations.md)
- [Rejestracja](https://brew.new/pl/sign-up.md)
- Strona internetowa: https://brew.new
