WooCommerce to najpopularniejszy sklep internetowy w Polsce. Dowiedz się, jak w 15 minut dodać SMS-y transakcyjne do swojego sklepu — bez programisty.
WooCommerce napędza ponad 30% sklepów internetowych w Polsce. Jeśli go używasz, możesz w prosty sposób dodać SMS-y transakcyjne do swojego sklepu — bez programisty, bez wtyczki, w 15 minut. Ten artykuł pokazuje jak.
Dlaczego SMS-y transakcyjne w WooCommerce?
Klienci sklepów internetowych oczekują informacji w czasie rzeczywistym:
- "Czy moje zamówienie zostało przyjęte?" — potwierdzenie w 1 sekundę
- "Kiedy przyjdzie paczka?" — SMS z numerem śledzenia
- "Czy jest gotowe do odbioru?" — SMS z kodem odbioru
E-mail jest za wolny — średni czas otwarcia e-maila to kilka godzin. SMS dociera w 1-3 sekundy i jest otwierany w 90% przypadków.
Efekt: mniej telefonów do obsługi klienta, mniej pytań "gdzie moja paczka", wyższa ocena sklepu.
Jak to działa?
Integracja WooCommerce z SMSIK to 3 kroki:
- Zainstaluj wtyczkę WordPress (np. WP Mail SMTP + WooCommerce) — masz już
- Dodaj haczyk PHP do pliku
functions.phpmotywu, który wywoła SMSIK API przy zmianie statusu zamówienia - Skonfiguruj klucz API SMSIK
Brak wtyczki? SMSIK nie ma oficjalnej wtyczki WooCommerce, ale integracja jest na tyle prosta, że można ją zrobić własnym kodem PHP (10 linii).
Krok 1: Klucz API SMSIK
Zarejestruj się na smsik.pl, wejdź w panel developera, kliknij "Nowy klucz". Skopiuj klucz (zaczyna się od sk_live_).
Krok 2: Haczyk PHP w WordPress
Otwórz plik functions.php motywu (np. wp-content/themes/twoj-motyw/functions.php) i dodaj:
<?php
/**
* Wysyła SMS do klienta przy zmianie statusu zamówienia WooCommerce.
* Dodaj do functions.php motywu.
*/
add_action('woocommerce_order_status_changed', 'smsik_notify_status_change', 10, 4);
function smsik_notify_status_change($order_id, $status_from, $status_to, $order) {
// Klucz API SMSIK — najpierw stała z wp-config.php, potem zmienna środowiskowa
$api_key = defined('SMSIK_API_KEY') ? SMSIK_API_KEY : getenv('SMSIK_API_KEY');
if (empty($api_key)) {
error_log('SMSIK: brak klucza API');
return;
}
// Numer telefonu klienta
$phone = $order->get_billing_phone();
if (empty($phone)) {
return; // brak telefonu — nic nie rób
}
// Treść SMS zależna od statusu
$messages = [
'processing' => 'Zamowienie #' . $order_id . ' przyjete. Dziekujemy!',
'completed' => 'Zamowienie #' . $order_id . ' gotowe do wysylki. Wyslemy info o nadaniu.',
'shipped' => 'Zamowienie #' . $order_id . ' nadane! Sprawdz numer sledzenia: ' . get_shipping_tracking_url($order),
'cancelled' => 'Zamowienie #' . $order_id . ' zostalo anulowane. Kontakt: sklep@example.pl',
];
$message = $messages[$status_to] ?? null;
if ($message === null) {
return; // nieobsługiwany status
}
// Wywołanie SMSIK API
$response = wp_remote_post('https://smsik.pl/api/v1/sms/send', [
'headers' => [
'X-API-Key' => $api_key,
'Content-Type' => 'application/json',
],
'body' => json_encode([
'to_number' => $phone,
'message' => $message,
'idempotency_key' => 'woo-order-' . $order_id . '-status-' . $status_to,
]),
'timeout' => 30,
]);
// Log błędów (do debugowania)
if (is_wp_error($response)) {
error_log('SMSIK error: ' . $response->get_error_message());
} elseif (wp_remote_retrieve_response_code($response) !== 200) {
error_log('SMSIK HTTP error: ' . wp_remote_retrieve_response_code($response));
}
}
/**
* Pobiera URL śledzenia przesyłki (dla popularnych wtyczek kurierskich).
*/
function get_shipping_tracking_url($order) {
// WooCommerce Shipment Tracking (oficjalna wtyczka)
$tracking_items = $order->get_meta('_wc_shipment_tracking_items');
if (!empty($tracking_items) && isset($tracking_items[0]['tracking_number'])) {
return $tracking_items[0]['tracking_number'];
}
return 'Panel klienta';
}
Krok 3: Ustaw klucz API
Najbezpieczniej — w wp-config.php:
define('SMSIK_API_KEY', 'sk_live_TWOJ_KLUCZ');
Kod w Kroku 2 automatycznie użyje tej stałej (dzięki defined('SMSIK_API_KEY') ? SMSIK_API_KEY : getenv(...)), a jeśli stałej nie ma — spróbuje odczytać zmienną środowiskową. Dzięki temu działa w obu scenariuszach.
functions.php jeśli używasz Gita. Użyj wp-config.php (jest w .gitignore WordPressa) lub zmiennych środowiskowych.
Krok 4: Idempotencja — ochrona przed duplikatami
Zauważ pole idempotency_key w kodzie:
'idempotency_key' => 'woo-order-' . $order_id . '-status-' . $status_to,
Jeśli WooCommerce wywoła haczyk dwa razy (np. z powodu retry), SMSIK nie wyśle drugiego SMS-a — zwróci istniejący. Klucz jest unikalny per (zamówienie, status).
Krok 5: Test
- Złóż testowe zamówienie w swoim sklepie (możesz użyć WooCommerce → Status → Narzędzia → Utwórz zamówienie testowe)
- Zmień status zamówienia na "W realizacji" (processing)
- Sprawdź telefon — powinien przyjść SMS
- Jeśli nie przyszedł — sprawdź
wp-content/debug.log(musisz mieć włączoneWP_DEBUG_LOG)
Statusy, które warto obsłużyć
| Status WooCommerce | Kiedy wysłać SMS | Treść |
|---|---|---|
processing | Po opłaceniu | "Zamówienie przyjęte, dziękujemy!" |
completed | Po spakowaniu | "Gotowe do wysyłki" |
shipped | Po nadaniu (wtyczka kurierska) | "Nadane! Numer: XYZ" |
cancelled | Po anulowaniu | "Anulowane, kontakt: ..." |
refunded | Po zwrocie | "Zwrot przyjęty, środki w 3 dni" |
on-hold | Opcjonalnie | "Czekamy na płatność" |
Koszty
Każdy SMS to 1 grosz brutto. Dla sklepu z 1000 zamówień miesięcznie:
- 2 SMS-y na zamówienie (przyjęte + nadane) × 1000 = 2000 SMS-ów
- Koszt: 20 zł miesięcznie
To mniej niż jedna godzina pracy programisty. A oszczędza dziesiątki telefonów od klientów.
Alternatywa: dedykowana wtyczka
Jeśli nie chcesz dotykać kodu, możesz użyć wtyczki "SMSAPI for WooCommerce" (od SMSAPI) — ale wymaga konta SMSAPI, nie SMSIK. Dla SMSIK najprościej jest własny haczyk PHP (10 linii, jak wyżej).
Podsumowanie
Integracja WooCommerce z SMSIK to:
- ✅ 15 minut pracy (klucz API + haczyk PHP)
- ✅ 0 zł za wtyczkę
- ✅ 1 grosz brutto za SMS
- ✅ Idempotencja (brak duplikatów)
- ✅ Ochrona przed spamem (tylko statusy, które wybierzesz)
Masz sklep WooCommerce i chcesz dodać SMS-y? Zarejestruj się bezpłatnie — dostajesz 5 groszy na start (5 testowych SMS-ów).