Sklep WooCommerce: SMS z potwierdzeniem zamówienia i statusem paczki
Sklep internetowy z akcesoriami do domu na WooCommerce, około 2 500 zamówień miesięcznie, wysyłka kurierem i do automatów paczkowych. Dwie osoby w obsłudze klienta, jeden programista na pół etatu. Klient po zamówieniu dostawał e-mail z WooCommerce, który często lądował w zakładce „Oferty" i już tam zostawał.
Problem
Około 30 % zgłoszeń do obsługi to pytanie „czy zamówienie doszło" albo „gdzie jest moja paczka". Klienci nie widzieli e-maila z potwierdzeniem, nie wiedzieli, że paczka jest już w automacie, a przy pobraniu bywało, że nie odbierali przesyłki, bo zapomnieli o zamówieniu. Każdy nieodebrany zwrot kosztował sklep podwójną wysyłkę i zamrożony towar.
Wtyczki SMS dla WooCommerce, które sklep testował, miały własne cenniki, abonamenty i ograniczoną kontrolę nad treścią. Programista wolał prosty REST z jednym endpointem, który da się wywołać z hooka i który nie wymaga utrzymywania kolejnej wtyczki w panelu WordPressa.
Rozwiązanie
Rozwiązanie to około 60 linii PHP w pliku functions.php motywu potomnego (albo małej wtyczce), podpięte pod hook woocommerce_order_status_changed. Przy trzech statusach wysyłany jest SMS przez POST /v1/messages:
- processing (opłacone): „Dziekujemy za zamowienie #48213. Przygotowujemy paczke, o wysylce damy znac SMS-em. Sklep Domowy".
- completed (wysłane): SMS z numerem przesyłki i linkiem do śledzenia u przewoźnika.
- Gotowe do odbioru (status własny, ustawiany z webhooka przewoźnika): przypomnienie z kodem odbioru i terminem, po którym paczka wraca.
Numer telefonu pochodzi z pola billing_phone i jest normalizowany do formatu E.164 (+48…) przed wysyłką. Jako reference idzie numer zamówienia, a Idempotency-Key to order-<id>-<status>, więc ponowne odpalenie hooka (WooCommerce potrafi zmienić status dwa razy w jednej transakcji) nie wysyła duplikatu. Kod klasy klienta wzięto w całości z przewodnika API SMS w PHP.
Statusy doręczenia z webhooka message.delivered / message.undelivered zapisywane są jako notatka do zamówienia w panelu WooCommerce, więc obsługa widzi w jednym miejscu, czy klient dostał SMS.
Przebieg wdrożenia
- Konto testowe i sprawdzenie na własnych numerach obsługi, jak wyglądają trzy szablony na iPhonie i Androidzie; skrócenie treści do jednej części.
- Zgłoszenie nadpisu z nazwą sklepu, dodanie informacji o powiadomieniach SMS do regulaminu i checkoutu (SMS transakcyjny, bez zgody marketingowej).
- Programista dodaje klasę klienta i funkcję pod woocommerce_order_status_changed; wysyłka odbywa się przez wp_schedule_single_event, żeby nie spowalniać checkoutu.
- Webhook statusów zapisujący notatkę do zamówienia; test na 50 zamówieniach z jednego dnia.
- Włączenie dla wszystkich zamówień, po dwóch tygodniach dodanie trzeciego SMS-a „gotowe do odbioru" dla automatów paczkowych.
Wyniki (orientacyjne)
Wyniki są orientacyjne, ale kierunek powtarza się u sklepów o podobnej skali: najwięcej daje SMS o wysyłce z numerem do śledzenia, bo to on zabiera obsłudze największą część pytań. Przypomnienie o paczce w automacie zwraca się z nawiązką na samych zwrotach pobrań. Koszt rzędu tysiąca złotych miesięcznie sklep porównał z kosztem jednej osoby odpowiadającej na maile o statusie i uznał temat za zamknięty.
Nie spodziewałem się, że najwięcej zmieni SMS o paczce w automacie. Ludzie po prostu zapominali. Teraz odbierają w dzień, dwa, a my nie płacimy za zwroty.
Co możesz przenieść do siebie
- Trzy SMS-y wystarczą: potwierdzenie, wysyłka z linkiem do śledzenia, gotowe do odbioru. Więcej zaczyna irytować.
- Wysyłaj asynchronicznie (cron, kolejka, wp_schedule_single_event), żeby błąd API nigdy nie zablokował checkoutu.
- Idempotency-Key z numerem zamówienia i statusem chroni przed podwójnym SMS-em, gdy hook odpali się dwa razy.
- Notatka w zamówieniu ze statusem doręczenia daje obsłudze odpowiedź, zanim klient zada pytanie.
- Pełny kod i warianty dla innych statusów: SMS z potwierdzeniem zamówienia w WooCommerce oraz strona integracji WooCommerce.
Podepnij SMS-y do swojego sklepu
Klucz API i 25 SMS-ów testowych masz od razu po rejestracji. Klasa PHP z naszego bloga i jeden hook WooCommerce to całe wdrożenie.
Załóż kontoWolisz porozmawiać? [email protected] · +48 533 991 881