WordPress + WooCommerce + n8n – technical tutorial (webhooks + REST + custom)

WordPress + WooCommerce zasila 40% polskich e-commerce. Dodaj n8n i masz pelen automation stack: kazdy order, kazdy nowy klient, kazdy abandoned cart automatyczne wyzwalaja workflow. Ten tutorial pokazuje pelen technical setup: webhooks, REST API, custom integracje z Subiektem i KSeF.

WordPress + WooCommerce + n8n

3 sposoby integracji WP/WC z n8n

  • 1. Webhooks (push): WC wysyla event do n8n po order_completed, customer_registered, etc.
  • 2. REST API (pull): n8n pyta WC API o dane (orders, products, customers)
  • 3. Cron + GET: n8n co X minut sprawdza nowe orders przez REST
Web developer with WordPress dashboard

Setup Webhooks (rekomendowane)

Krok 1: WooCommerce Webhooks

Panel WP -> WooCommerce -> Settings -> Advanced -> Webhooks -> Add. Dla kazdego eventu chcesz osobny webhook: Order Created, Order Updated, Customer Created, etc.

Krok 2: Pole „Delivery URL”

Wklej URL webhook z n8n: https://twoja-n8n.com/webhook/wc-order-created. W n8n: stworz workflow z Webhook node, kopiuj Production URL.

Krok 3: Secret

WC dodaje pole Secret. Wklej random string (np. wygeneruj na uuidgen). WC podpisuje payload tym secretem – w n8n weryfikujemy HMAC SHA256.

Krok 4: Test

Zlozyc test order. Sprawdz w WC -> Webhooks -> twoj webhook -> Logs. Status 200 = OK. Sprawdz n8n executions – powinien byc wykonany workflow.

Setup REST API (alternative)

Panel WP -> WooCommerce -> Settings -> Advanced -> REST API -> Add key. Permissions: Read/Write. Nazwa: „n8n integration”. Save -> dostajesz Consumer Key + Secret.

W n8n: HTTP Request node z Basic Auth (key + secret). Endpoint: https://twojsklep.pl/wp-json/wc/v3/orders?status=completed&after=2026-06-01

5 Use cases – real workflow

WP + WC + n8n workflow

Use case 1: Order completed -> Subiekt faktura -> KSeF

  • WC Webhook: order_status_completed
  • n8n: extract billing data, line items, total
  • HTTP -> Subiekt API: POST /v1/faktury z mapowaniem
  • HTTP -> KSeF: auto_ksef: true w Subiekt = automatyczne wyslanie
  • Gmail: email do klienta z PDF faktury

Use case 2: Customer Registered -> HubSpot + Mailchimp + welcome email

  • WC Webhook: customer_created
  • n8n: HubSpot Contact Upsert z first_name, email
  • n8n: Mailchimp Add Subscriber do „New Customers” list
  • n8n: Gmail welcome email z 10% discount code

Use case 3: Abandoned Cart -> SMS recovery

  • Cron (n8n): co 30 min
  • HTTP -> WC API: GET orders ze statusem „pending” starsze niz 1h
  • Loop: dla kazdego, jesli klient ma phone
  • HTTP -> SerwerSMS: wyslij SMS „Twoj koszyk: {{cart_link}}. -10% rabat: KOSZYK10”

Use case 4: Low stock alert -> Slack

  • WC Webhook: product_updated
  • n8n IF: stock < 5
  • Slack: post do #ops „Produkt {{name}} ma {{stock}} sztuk. Czas zamowic.”

Use case 5: Daily sales report

  • Cron: codziennie 8:00
  • HTTP -> WC API: GET orders z yesterday
  • n8n Function: aggregate (total revenue, orders count, top product)
  • Slack: post raport do #sales
  • Google Sheets: append row do tracking

Code snippet – custom webhook trigger

WooCommerce orders screen

WC dziala dla standardowych eventow. Dla custom (np. „klient zwrocil produkt”) – dodaj snippet PHP:

add_action('woocommerce_order_refunded', function($order_id) { wp_remote_post('https://twoja-n8n.com/webhook/wc-refund', array('body' => json_encode(array('order_id' => $order_id, 'refund_total' => wc_get_order($order_id)->get_total_refunded())))); });

Plus snippets dla custom data

Webhook payload standard zawiera podstawowe pola. Dla wiecej – dodaj filter:

add_filter('woocommerce_webhook_payload', function($payload, $resource, $resource_id) { if ($resource === 'order') { $order = wc_get_order($resource_id); $payload['custom_meta'] = $order->get_meta('_my_custom_field'); } return $payload; }, 10, 3);

Bezpieczenstwo

  • HMAC verification: zawsze weryfikuj X-WC-Webhook-Signature header w n8n (Function node)
  • IP whitelist: jesli Twoj n8n stoi za reverse proxy – pozwol tylko Twojemu hostingowi
  • Rate limiting: jesli WC pluje 1000 webhooks/s (mass update) – n8n queue mode + Redis
  • Secrets: nigdy nie zapisuj WC API keys w git, uzywaj n8n credentials encrypted store

FAQ

Czy WC webhooks dziala dla custom post types?

Nie out of the box. Trzeba zarejestrowac wlasny webhook topic + delivery URL przez kod PHP. Latwiejsze: hook na save_post WordPress.

Czy n8n wykonuje webhook w real-time?

Tak. WC wysyla HTTP POST natychmiast po evencie. n8n webhook node odbiera w <1 sek. Real-time.

Co z duplikatami webhooks?

WC retryuje webhook 5 razy jesli first call != 2xx. Moze zrobic duplikaty workflow run. Workaround: w n8n dodaj IF node ktory sprawdza Postgres „czy ten order_id juz przetworzony”.

Mamy gotowe workflow WC + n8n: Faktura po oplaceniu, KSeF Inbox, Allegro Subiekt. Setup video call jesli utkniesz.

Workflow WC + n8n →

Zostaw komentarz

Twój adres email nie zostanie opublikowany. Wymagane pola są oznaczone *

Cookies + RODO

Używamy cookies, żeby sklep działał szybciej, a oferty były trafniejsze. Wybór należy do Ciebie — zgoda jest w pełni dobrowolna. Polityka prywatności · Regulamin

Ustawienia cookies

Wybierz które kategorie cookies włączyć. Zmiany zapisane lokalnie w przeglądarce.

Przewijanie do góry