Przewodnik po integracji z WooCommerce
Ten przewodnik łączy sklep WooCommerce z Tajo. Integracja składa się z dwóch części, które działają razem:
- Wtyczka Tajo for WooCommerce: przechwytuje zdarzenia zaangażowania w czasie rzeczywistym (zamówienia, koszyki, zwroty, opinie, zgłoszenia formularzy) wewnątrz WordPressa i dostarcza je do Tajo przez trwałą, podpisaną skrzynkę nadawczą.
- Połączenie REST z WooCommerce: Tajo odczytuje klientów, zamówienia, produkty, kupony, zwroty i opinie z Twojego sklepu na potrzeby importu historycznego i bieżącej synchronizacji. Konfigurację opartą wyłącznie na REST opisuje dokumentacja konektora WooCommerce.
Samą automatyzację marketingu (email, SMS, WhatsApp przez Brevo i innych dostawców) konfigurujesz w Tajo, a nie we wtyczce. Zadaniem wtyczki jest wyprowadzenie wiarygodnych zdarzeń z WordPressa.
Wymagania wstępne
- WordPress 6.3+ z dostępem administratora
- PHP 7.4+
- WooCommerce 7.0+ (wtyczka działa też na witrynach WordPress bez WooCommerce; adaptery sklepowe pozostają wtedy po prostu nieaktywne)
- Konto Tajo z utworzonym połączeniem WordPress
- HTTPS na endpoincie Tajo (zawsze spełnione w Tajo hostowanym przez nas)
Krok 1: zainstaluj wtyczkę Tajo for WooCommerce
Instalacja ręczna
# Download the plugincd wp-content/pluginswget https://tajo.io/downloads/woocommerce/tajo-woocommerce-latest.zip
# Verify and unzipunzip tajo-woocommerce-latest.zipNastępnie aktywuj wtyczkę w panelu WordPressa:
- Przejdź do Plugins → Installed Plugins
- Znajdź „Tajo for WooCommerce”
- Kliknij Activate
Możesz też wgrać plik zip bezpośrednio przez Plugins → Add New → Upload Plugin. Suma kontrolna SHA-256 jest publikowana razem z każdym wydaniem pod adresem tajo.io/downloads/woocommerce/. Wtyczka nie jest jeszcze wpisana do katalogu WordPress.org; instalacja ręczna to dziś jedyna wspierana droga.
Krok 2: skonfiguruj połączenie
Przejdź do WooCommerce → Tajo (na witrynach bez WooCommerce: Settings → Tajo) i wpisz trzy wartości ze swojego połączenia WordPress w Tajo:
| Pole | Wartość |
|---|---|
| Endpoint Tajo | Adres webhooka HTTPS pokazany w Tajo, na przykład https://alto.tajo.io/api/connectors/wordpress/webhooks/engagement |
| Binding ID | Identyfikator powiązania połączenia z Tajo |
| Sekret podpisujący | Współdzielony sekret (od 32 do 256 znaków). Wtyczka generuje przy aktywacji mocny lokalny sekret; wklej go do Tajo albo wklej tutaj sekret z Tajo |
Nie ma żadnych stałych z kluczem API, które trzeba dodawać do wp-config.php. Zdarzenia czekają bezpiecznie w lokalnej skrzynce nadawczej, dopóki wszystkie trzy wartości nie zostaną zapisane.
Następnie sprawdź całą ścieżkę od początku do końca:
- Kliknij Queue test event, a potem Process now.
- Tabela skrzynki nadawczej powinna pokazać zdarzenie jako dostarczone.
- W Tajo potwierdź, że zdarzenie
connection.testdotarło na połączenie WordPress.
Co wysyła wtyczka
Każde zdarzenie to zwięzła koperta ograniczona do minimum danych osobowych i podpisana algorytmem HMAC-SHA256. WordPressa opuszczają wyłącznie pola tożsamości potrzebne do zaangażowania (email, telefon, lokalne identyfikatory) oraz ograniczone metadane zdarzenia, nigdy imiona i nazwiska, adresy pocztowe, adresy IP, user agenty, treści komentarzy, dowolne pola formularzy, notatki do zamówień ani dane płatności.
Zdarzenia WooCommerce
| Hook | Zdarzenie |
|---|---|
woocommerce_created_customer / woocommerce_update_customer | customer.created / customer.updated |
woocommerce_new_product / woocommerce_update_product | product.created / product.updated |
woocommerce_add_to_cart, usunięcie pozycji, dodanie lub usunięcie kuponu | cart.updated (z podsumowaniem koszyka na potrzeby procesów porzuconych koszyków) |
woocommerce_cart_emptied | cart.emptied |
woocommerce_new_order / woocommerce_update_order | order.placed / order.updated |
woocommerce_order_status_changed | order.status_changed (+ order.fulfilled po zakończeniu) |
woocommerce_payment_complete | order.paid |
woocommerce_order_refunded | refund.created |
| Zmiany statusu w WooCommerce Subscriptions | subscription.status_changed |
Zdarzenia zamówień niosą numer zamówienia, status, walutę, kwoty, pozycje oraz gotowe adresy do opinii i ponownego zamówienia, czyli dość, aby zbudować automatyzacje pozakupowe i win-back bez dodatkowego zapytania do API.
Zdarzenia WordPress
contact.created/contact.updated/contact.deleteddla kont użytkownikówcontent.published/content.updated/content.unpublisheddla treści publicznychcomment.created/comment.status_changeddla komentarzy odwiedzających i opinii o produktach (wewnętrzne notatki do zamówień WooCommerce, pingbacki i trackbacki nigdy nie są wysyłane)form.submitteddla udanych zgłoszeń z Contact Form 7, WPForms, Gravity Forms i Fluent Forms: pobierane są wyłącznie typowane pola tożsamości email i telefon oraz metadane formularza; dowolne przesłane pola są odrzucane
Niezawodność: skrzynka nadawcza
Wtyczka nigdy nie wysyła zdarzeń do Tajo bezpośrednio przy wczytywaniu strony. Każde zdarzenie trafia najpierw do lokalnej tabeli skrzynki nadawczej, a potem dostarcza je WP-Cron z następującymi zabezpieczeniami:
- Ograniczony wykładniczy backoff (do 8 prób, z poszanowaniem
Retry-After) - Dead letters z przyciskiem Replay dead letters w panelu
- Limity przechowywania, dzięki którym nieosiągalny endpoint nigdy nie gromadzi danych osobowych (dostarczone: 7 dni; w kolejce: 30 dni; dead letters: 30 dni od ostatniej aktualizacji)
- Idempotentne identyfikatory zdarzeń, więc ponowne próby i powtórki nigdy nie duplikują danych w dalszych systemach
Jeśli Twój hosting wyłącza WP-Cron (DISABLE_WP_CRON), wywołuj wp-cron.php z prawdziwego harmonogramu co najmniej raz na minutę.
Zgoda nigdy nie jest wnioskowana
Założenie konta, checkout, zakup i zwykłe zgłoszenia formularzy nie są traktowane jako zgoda marketingowa. Wbudowane zdarzenia niosą pustą listę zgód. Aby zapisać wyraźną zgodę (na przykład z zaznaczonego pola zapisu do newslettera), wyślij ją przez hook rozszerzenia:
do_action( 'tajo_engagement_emit', 'consent.updated', array( 'email' => $email ), array( 'policyVersion' => '2026-07' ), array( array( 'channel' => 'email', 'status' => 'opt_in', // or 'opt_out' 'purpose' => 'marketing', 'source' => 'newsletter_checkbox', 'evidence' => array( 'formId' => 'newsletter-footer', 'field' => 'marketing_email' ), ), ), gmdate( 'c' ));Ten sam hook pozwala dowolnej wtyczce lub motywowi wysyłać własne zdarzenia; wszystko przechodzi przez ten sam sanitizer, tę samą skrzynkę nadawczą i ten sam podpis.
Krok 3: import historyczny
Zdarzenia w czasie rzeczywistym obejmują wszystko od momentu instalacji. Historię sprzed wtyczki importuje połączenie REST z WooCommerce po stronie Tajo: istniejących klientów, zamówienia, produkty, kupony, zwroty i opinie, konfigurowane w całości w Tajo przy użyciu klucza REST API WooCommerce (WooCommerce → Settings → Advanced → REST API, uprawnienie odczytu). Szczegóły znajdziesz w dokumentacji konektora WooCommerce.
Prywatność i RODO
- Wtyczka rejestruje się w WordPressie w Tools → Export Personal Data oraz Tools → Erase Personal Data; zachowane zdarzenia skrzynki nadawczej dla pasującego adresu email są lokalnie eksportowane lub usuwane.
- Usuwanie danych i dostarczanie zdarzeń dzielą muteks działający w trybie fail-closed, więc usunięcie nigdy nie zgłosi zakończenia, gdy ładunek jest w trakcie wysyłki.
- Lokalne usunięcie obejmuje wyłącznie skrzynkę nadawczą WordPressa: dla danych w dalszych systemach złóż odpowiednie żądanie w Tajo.
- Dezaktywacja wstrzymuje dostarczanie, ale zachowuje konfigurację i zdarzenia w kolejce; usunięcie wtyczki trwale kasuje skrzynkę nadawczą, ustawienia, sekret i harmonogramy.
Zgodność
- HPOS: wtyczka deklaruje zgodność z WooCommerce High-Performance Order Storage i korzysta wyłącznie z obiektów CRUD oraz publicznych hooków.
- WooCommerce Subscriptions: zmiany statusu subskrypcji są przechwytywane, gdy rozszerzenie jest aktywne.
- Multisite: odinstalowanie sprząta każdą witrynę w sieci.
Dokumentacja operacyjna
Wykrywanie po stronie serwera i sterowanie skrzynką nadawczą są dostępne dla administratorów przez uwierzytelnianie Application Password:
| Metoda | Ścieżka | Przeznaczenie |
|---|---|---|
GET | /wp-json/tajo/v1/capabilities | Wersja wtyczki, wykryte adaptery, lista zdarzeń, kondycja skrzynki nadawczej |
GET | /wp-json/tajo/v1/outbox | Liczniki skrzynki nadawczej (ładunki nigdy nie są ujawniane) |
POST | /wp-json/tajo/v1/outbox/process | Natychmiastowe przetworzenie paczki |
POST | /wp-json/tajo/v1/outbox/replay | Ponowne wysłanie dead letters |
Rozwiązywanie problemów
| Objaw | Przyczyna i rozwiązanie |
|---|---|
| Zdarzenia zostają w stanie „Queued” | Endpoint, binding ID albo sekret nie zostały jeszcze zapisane: dostarczanie jest wstrzymane do czasu skonfigurowania wszystkich trzech |
| Zdarzenia zostają w stanie „Retrying” | Endpoint Tajo jest nieosiągalny z Twojego hostingu albo WP-Cron nie działa: sprawdź kolumnę błędu w tabeli skrzynki nadawczej i swoją konfigurację crona |
| Rosną dead letters | Błąd, którego nie da się ponowić (zwykle zły binding ID albo sekret): popraw konfigurację, a potem użyj Replay dead letters |
| „Enter a valid HTTPS Tajo webhook endpoint” | Endpoint musi być pod HTTPS i bez wbudowanych danych logowania |
| Zdarzenie testowe dostarczone, ale w Tajo nic nie ma | Sprawdź, czy binding ID pochodzi z tej samej przestrzeni roboczej i tego samego połączenia Tajo, do którego należy endpoint |
Kolejne kroki
- Dokumentacja konektora WooCommerce: synchronizacja REST, szczegóły podpisu webhooka, klucze konfiguracji
- Synchronizacja klientów: mapowanie klientów WooCommerce do Twojego systemu źródła prawdy
- Skonfiguruj w Tajo automatyzacje porzuconych koszyków, pozakupowe i win-back w oparciu o zdarzenia
cart.updated,order.placediorder.fulfilled