Na testelka.pl mam taki bonus dla moich kursantów, że mogą dostać 6-miesięczną licencję testową na jedno z narzędzi od JetBrains. Są to narzędzia głównie dla programistów, a załatwiłam to po prostu pisząc do JetBrains. Okazuje się, że po spełnieniu nieskomplikowanych warunków, można dostać licencje dla swoich kursantów.
Dostałam więc kilkaset licencji na start. Otrzymałam je w formie kodów do wykorzystania na odpowiedniej stronie. Do każdego kodu dostałam też elegancki pdf (taki trochę jakby kupon podarunkowy). Pozostało mi jedynie wymyślić, jak te kody dystrybuować.
Problem
Ponieważ na testelka.pl mam model subskrypcyjny i każdy użytkownik dołącza w innym momencie i w innym też odchodzi, chciałam, żeby dystrybucja kodów odbywała się bez mojego udziału. Pomyślałam, ze najlepiej by było, gdyby to się działo na żądanie użytkownika. Czyli po prostu, gdy ktoś chce odebrać kod, musi wykonać jakąś akcję i w ten sposób go otrzyma. Dzięki temu nie marnuję też kodów dla osób, które wcale nie są nimi zainteresowane (tak by było, gdybym wysyłała je wszystkim).
Prosta sprzedaż licencji: WooCommerce Serial Numbers Pro
Testelka.pl jest postawiona na WordPressie przy użyciu WooCommerce więc pierwszą moją myślą była wtyczka integrująca się z WooCommerce. Scenariusz użycia byłby taki:
- Użytkownik „kupuje” (za 0 zł) produkt, żeby otrzymać licencję.
- Przydzielana jest mu jedna z dostępnych licencji i wysyłana na maila albo dostarczana w inny sposób.
- Kod licencyjny jest oznaczany jako użyty, żeby uniknąć przydzielenia go innej osobie.
Proste jak budowa cepa. Jednak znalezienie takiej prostej wtyczki wcale nie było łatwe. Po ponad tygodniu intensywnego przekopywania się w Google przez różne materiały, znalazłam mniej więcej to czego potrzebowałam: WooCommerce Serial Numbers Pro.
Działałam na tej wtyczce niecały rok. Spełniała swoje zadanie, które nie było specjalnie skomplikowane. Zdecydowałam się jednak zrezygnować z tej wtyczki, a powodów było kilka. Najważniejszym powodem była chęć „odchudzenia” mojej strony. Doszłam do momentu, w którym na stronie miałam zainstalowanych kilkadziesiąt wtyczek. Jeżeli chodzi o ilość wtyczek w WordPressie to kieruję się rozsądnym minimalizmem. Im mniej wtyczek, tym mniej rzeczy może pójść nie tak przy kolejnej aktualizacji. A ja już bałam się kliknąć w przycisk do aktualizacji poszczególnych wtyczek o całym WordPressie nie wspominając.
Pierwsze do „odstrzału” były wtyczki, które odpowiadały za coś małego i niekluczowego. Część z tych niekluczowych funkcjonalności pozbyłam się wraz z wtyczkami na zawsze, a część zaczęłam obsługiwać poza WordPressem.
Kolejnym powodem był fakt, że twórcom tej wtyczki zdarzały się częstsze niż przeciętnie potknięcia. Od razu dodam, że moje przeciętnie nie oznacza przeciętnie na rynku. Oznacza przeciętnie wśród innych wtyczek, których używam, a staram się dobierać je z głową.
Prosta sprzedaż licencji: Zapier, Google Sheets i WooCommerce
Ponieważ nadal potrzebowałam dystrybuować klucze wśród moich użytkowników, ale nie chciałam tego robić z poziomu WordPressa, zaczęłam rozglądać się za innym rozwiązaniem. Nie musiałam jakoś specjalnie szukać, bo Zapiera używałam już od jakiegoś czasu do drobnych rzeczy. W tym przypadku wymyśliłam, że Zapierem skleję ze sobą arkusze Google oraz WooCommerce.
Do integracji Zapiera i WooCommerce potrzebna jest wtyczka WooCommerce Zapier (link polecający). Korzystam z niej także do innych rzeczy, więc nie musiałam instalować nic ekstra.
To co zrobiłam, to po prostu stworzyłam arkusz w Google w którym w jednej kolumnie przechowuję kody, a w drugiej kolumnie status. Status zmienia się w zależności od tego, czy kod został już przez kogoś odebrany czy nie. Gdy w WooCommerce dokonywany jest zakup określonego produktu (czyli licencji na jedno z narzędzi od JetBrains) Zapier przechodzi do arkusza Google, wyszukuje tam pierwszy nieużyty kod, pobiera go od razu zmieniając status i wysyła go w mailu do użytkownika. Jednocześnie pobiera z folderu na dysku Google plik pdf i załącza go również do maila.
Całość w Zapierze wygląda jak poniżej.
Krok 1: zamówienie w WooCommerce
Wybierz odpowiedni event i trigger („Order paid”). W „Choose account” wybierz Twoje konto WooCommerce. Jeżeli nie masz tego skonfigurowanego na przykład z wcześniejszych automatyzacji będzie trzeba to zrobić teraz.


Krok 2: przefiltruj po odpowiednim produkcie
Ponieważ w swoim sklepie mam więcej produktów, muszę pofiltrować wyniki z pierwszego kroku po id produktu. Chcę, żeby zakup tylko jednego bardzo konkretnego produktu wyzwalał kolejne akcje w tym wysłanie maila do użytkownika. Można to zrobić korzystając z bloku „Filter by Zapier” i wybierając „Line Product ID” a następnie „Exactly matches”. W ostatnim polu trzeba wprowadzić ID produktu.

Krok 3: znajdź „wolny” kod w arkuszu
Przechodzimy do arkusza Google po to, by znaleźć wolny kod, który możemy wysłać użytkownikowi. Wybieramy event „Lookup Spredsheet Row” z akcji dostępnych dla Google Sheet.

W „Set up action” podajemy nazwę dokumentu arkuszy („Kupony do JetBrains”), nazwę konkretnego arkusza w dokumencie („Report”), kolumnę w której będziemy szukać jakiejś wartości („State”) oraz tą wartość. W moim przypadku jest to „Unused”. Taką wartość postanowiłam wprowadzić do arkusza przy każdym wolnym kuponie, czyli takim, który nie został przydzielony żadnemu użytkownikowi.

Krok 4: zmień status podjętego kodu
Teraz zmienimy status kodu w odpowiednim wierszu. Jako event wybierz „Update Spreadsheet Row”, wybierz dokument i arkusz, a następnie wiersz zwrócony w poprzednim kroku. Znajdziesz go po kliknięciu w listę rozwijaną w zakładce „Custom”. W polu, odpowiadającym kolumnie dla której chcemy zmienić wartość, wstaw nową wartość. U mnie jest to kolumna „State” a nowa wartość to „Used”. W ten sposób zaznaczam, że dany kod został podjęty i nie może zostać użyty ponownie.

Krok 5: znajdź odpowiadający plik pdf
Pliki pdf, czyli ładniejsza graficzna prezentacja kodu, mają takie same nazwy jak kody. W związku z tym korzystając z bloku „Find a File in Google Drive” i używając kodu wybranego w kroku 3, mogę namierzyć ten plik.

Krok 6: wyślij maila z kodem
Przyszedł czas na ostatni krok, czyli wysłanie maila użytkownikowi. Robię to za pomocą Gmaila ponieważ korzystam z Google Workspace i mam tam podpiętego swojego maila w mojej domenie. W ten sposób mogę wysłać maila z mojej domeny. Musisz jednak pamiętać, że jeżeli będziesz takich maili wysyłać dużo, to lepiej będzie użyć czegoś innego niż Gmail. O ile się orientuję Gmail nie pozwala na masową wysyłkę maili, ale nie umiem powiedzieć od ilu maili zaczyna się robić „masowo”.
Z pierwszego kroku pobieramy email klienta. Podajemy też adres email z jakiego chcemy maila wysłać.

W tym samym bloku podajemy także tytuł maila i jego treść. W treści możemy używać parametrów a więc możemy przekazać pobrany z arkusza w kroku 4 kod. W załącznikach podajemy plik z kroku 5.

I tyle! Pamiętaj żeby w każdym bloku przetestować to, co stworzyliśmy przed włączeniem całego scenariusza. I najlepiej przetestować go jeszcze na samym końcu całościowo.
Co warto wiedzieć
Warto na pewno lepiej poznać Zapiera. To narzędzie o niesamowitych możliwościach zwłaszcza dla osób, które nie programują. Pozwala ono na „poklejenie” różnych systemów bez zatrudniania programisty. Darmowa wersja Zapiera nie pozwoli Ci na poklejenie powyższego scenariusza. Darmowa pozwala tylko na dwa kroki, tutaj mamy ich dużo więcej. Natomiast najniższy płatny plan (Starter) pozwala już na zbudowanie scenariusza, który Ci tutaj pokazałam.
W alternatywie jest kilka innych narzędzi, z których szczególnie polecam Integromat. Nie jest tak super przyjazny jak Zapier, który wydaje się łatwiejszy, zwłaszcza na początku, ale pozwala na trochę więcej w planie darmowym.