Webhook WooCommerce (zapis po zamówieniu)

Kierunek inbound: WooCommerce wysyła JSON zamówienia na URL Webivio. Po statusie opłaconym (processing lub completed) Webivio zapisuje kupującego na najbliższy nadchodzący termin webinaru — jak po formularzu zapisu (potwierdzenie e-mail, dostęp do pokoju, CRM).

To nie jest to samo co:

Gdzie wziąć URL

Kreator webinaru → krok Zakończenie → sekcja Webhook sklepu (WooCommerce) → skopiuj adres.

https://webivio.com/api/public/order-registration-webhook?webinarId={uuid}&token={sekret}

Opcjonalnie dodaj filtr produktu (w panelu jest pole „ID produktu” albo ręcznie w URL):

…&productId=123

Ten sam token co przy webhooku rejestracji Make/Zapier (registrationWebhookToken).

Podpięcie w WooCommerce

  1. WordPress → WooCommerceUstawieniaZaawansowaneWebhooki.
  2. Dodaj webhook.
  3. Delivery URL — wklej adres z Webivio.
  4. Temat / zdarzenieOrder updated (aktualizacja zamówienia).
  5. Status webhooka: Aktywny.
  6. Zapisz i złóż testowe zamówienie (opłać je).

Co robi Webivio

SytuacjaOdpowiedź
Status processing / completedZapis na najbliższy termin z harmonogramu
Inny status (np. pending, failed)HTTP 200, skipped: true, reason: ORDER_NOT_PAID (bez retry)
Filtr productId i brak produktu w zamówieniuHTTP 200, skipped: true, reason: PRODUCT_FILTER
E-mail już zapisany na ten terminHTTP 200, alreadyRegistered: true
Brak przyszłych terminówHTTP 422

Pola z zamówienia Woo: billing.email, billing.first_name, billing.last_name, billing.phone, line_items[].product_id, status, id.

Test bez Woo (curl)

curl -X POST \
  "https://webivio.com/api/public/order-registration-webhook?webinarId=YOUR_ID&token=YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"email":"jan@example.com","name":"Jan","surname":"Kowalski","status":"processing"}'

Bez pola status też zapisze (przydatne w testach). Przy pełnym payloadzie Woo status jest wymagany jako opłacony.

Zobacz też