too

Cykliczne płatności/subskrypcje w Drupal Commerce na przykładzie modułu Commerce Recurring

Płatności cykliczne zyskują na popularności i wykorzystywane są coraz częściej także przez znane marki. Tego rodzaju model rozliczeń spotkasz m.in. w Netflix, Spotify czy Apple Music. Niewątpliwie stanowią udogodnienie dla e-biznesu ze względu na zapewnienie regularności i terminowości wpłat, pełną automatyzację, a także bezpieczeństwo. Jeśli chcesz zaimplementować taki sposób pobierania płatności, zachęcam do przeczytania tego artykułu. Dowiesz się, jak to zrobić w Drupal Commerce.

Co to są płatności cykliczne?

To płatności pobierane co pewien określony czas od klientów. Najczęściej płatności są realizowane co miesiąc, ale spotyka się również inne modele. Niektóre systemy pobierają płatności raz na rok, a inne raz na tydzień. Możliwe jest także zdefiniowanie cyklu kwartalnego. Inne interwały czasowe występują rzadziej.

Co można sprzedawać za pomocą płatności cyklicznych?

Wspomniane we wstępie Netflix czy Spotify to systemy z bazą plików (wideo, audio). Chcąc mieć do nich dostęp, należy dokonywać cyklicznych płatności.

W naszej agencji drupalowej wykonaliśmy podobny projekt - oczywiście z użyciem Drupala. Po opłaceniu użytkownik otrzymuje dostęp do systemu i do unikalnych plików PDF. Klient posiada możliwość zakupu pojedynczego, konkretnego pliku, jak i również może skorzystać z miesięcznej lub rocznej subskrypcji. W tej drugiej sytuacji otrzymuje wówczas dostęp do wszystkich plików w systemie.

Podobnym systemem, który w Droptica opracowaliśmy, jest Training Realm. Jest to aplikacja webowa oferująca użytkownikom możliwość logowania treningów, tworzenia grafików treningowych oraz dopasowywania trudności cykli treningowych do poziomu użytkownika. I jak zapewne łatwo się domyślić, usługa cyklicznych płatności wykorzystaliśmy również i w tym przypadku.

Na powyższych przykładach widać, że płatności cykliczne są najczęściej powiązane z produktami lub usługami cyfrowymi. Można oczywiście to rozwiązanie zaimplementować do sprzedaży produktów fizycznych. Idealnym przykładem jest catering dietetyczny. System automatycznie pobiera co miesiąc opłatę za jedzenie dostarczane przez kolejne 30 dni.

Jak widać zastosowań jest bardzo dużo. Cykliczne płatności są bardzo wygodne dla firm, ponieważ zapewniają im regularny przychód w przewidywalnym okresie czasu.

Instalacja modułu do płatności cyklicznych w Drupal Commerce

Włączenie i konfigurację modułu Commerce Recurring zaprezentuję w odniesieniu do dystrybucji Droopler. Przygotowaliśmy tam startowy pakiet dla Drupal Commerce - wystarczy włączyć moduły d_commerce (zrzut ekranu poniżej), aby mieć gotowy system Commerce na bazie Drupala.

Instalacja systemu Droopler jest bardzo prosta. Instrukcje dla Composer znajdziesz tutaj.

Jeśli posiadasz już system Droopler, to należy zainstalować moduł Commerce Recurring.

Pobierz odpowiednie pliki modułu Recurring i dodatkowe, potrzebne dla tego przykładu moduły komendą:

composer require drupal/commerce_recurring drupal/facets_pretty_paths drupal/commerce_paypal

Po uruchomieniu tych komend w terminalu, powinieneś zobaczyć taki efekt:

composer output

W kolejnym kroku w Drupalu przejdź do strony z listą modułów (/admin/modules) i włącz następujące moduły:

  • d_commerce 
  • d_commerce_product 
  • d_commerce_products_list
  • Commerce Recurring

Do płatności cyklicznych będzie potrzebny również moduł płatności wspierający cykliczne płatności. W tym wpisie przykład zostanie oparty o moduł Commerce Paypal.

Moduł pobierzesz używając komendy:

composer require drupal/commerce_paypal

Opis jak włączyć i skonfigurować moduł znajdziesz na stronie projektu.

Konfiguracja modułu Commerce Recurring

Po instalacji modułu zobaczymy dwie dodatkowe strony w panelu administracyjnym:

  1. Billing schedules /admin/commerce/config/billing-schedules
  2. Subscriptions /admin/commerce/subscriptions

Zaczniemy od ustawień na stronie Billing schedules. W tym miejscu zdecydujesz, czy klient będzie płacił miesięcznie, tygodniowo czy codziennie. A może chcesz pobierać płatność co 13 dni? Tak, możesz skonfigurować również i taką płatność.

Ponadto ustawisz też parametr, kiedy ma być pobierana płatność: czy od razu po zakupie czy może dopiero na koniec okresu (np na koniec miesiąca).

Zdecydujesz również, czy płatność ma być zawsze pobierana pierwszego dnia miesiąca lub czy ma to być ten sam dzień kolejnego miesiąca, w którym dokonano zakupu (np. zakup 13 dnia miesiąca, więc płatność będzie zawsze 13 dnia każdego miesiąca).

Innym parametrem jest też proporcjonalność, np. dla płatności rocznych: jeśli ktoś dokona zakupu w lipcu, to zdefiniujesz, czy płaci kwotę za rok czy tylko za pół roku, a kolejna opłata za cały rok będzie w styczniu.

Na końcu formularza zdecydujesz, co ma się dziać, jeśli płatność się nie powiedzie (np. możesz ponowić płatność za 3 dni).

Jak widać, opcji konfiguracji jest bardzo dużo. Każdy znajdzie konfigurację pasującą do jego modelu biznesowego.

Cykliczne płatności miesięczne

Poniżej znajdziesz przykład ustawień formularza dla cyklicznych płatności miesięcznych. Płatność będzie pobierana z góry i dokonywana zawsze w pełnej wartości za miesiąc (liczona od dnia zakupu przez klienta). W sytuacji zaś niepowodzenia płatności, system jeszcze trzykrotnie spróbuje przetworzyć płatność, zanim wyłączy subskrypcję.

Tak wygląda to na formularzu:

billing schedule formularz

 

billing schedule formularz

Pełny opis ustawień tego formularza znajdziesz w dokumentacji na stronie poświęconej Drupal Commerce.

Dodanie płatności cyklicznych do produktu

W tym przypadku zobaczysz, jak płatność cykliczna wygląda w powiązaniu z produktem, np. wspomnianym wcześniej cateringiem dietetycznym.

Częstą praktyką jest stworzenie osobnej wariacji produktu, która umożliwia subskrypcję. W ogólnym ujęciu, każdy produkt może mieć wariację, różniącą się ceną, kodem SKU i/lub innymi cechami. Przykładowo platforma e-commerce zajmująca się sprzedażą odzieży, może mieć utworzony produkt koszulka, którego wariacjami będą różne wersje kolorystyczne.

W celu utworzenia wariacji przechodzimy pod adres:

  • /admin/commerce/config/product-variation-types

albo poprzez menu:

  • Commerce->Configuration->Products->Products variation types

Następnie klikamy Add product variation type. W tym prostym formularzu wpisujemy nazwę tworzonej wariacji oraz zaznaczamy Allow subscription.

formularz typu wariacji produktu

 

Każdy stworzony typ produktu umożliwia dodanie jednego typu wariacji. Nie chcąc więc utracić istniejących produktów, musimy stworzyć dodatkowo typ produktu, którego wariacjami będą subskrypcje. W tym celu przechodzimy do:

  • /admin/commerce/config/product-types

albo poprzez menu:

  • Commerce->Configuration->Products->Product types

i kilkamy Add product type. Wypełniamy formularz z listy rozwijalnej i wybieramy utworzoną wcześniej wariację (w przypadku tego przykładu subscription).

formularz - typ produktu

Następnie potrzebny nam jest faktyczny produkt, który użytkownik końcowy będzie mógł dodać do koszyka. Dodamy go, przechodząc na stronę:

  • /product/add

Z listy typów produktów wybierzemy utworzony wcześniej Subscription product. Wypełniamy formularz zgodnie z wyświetlanymi polami, a następnie klikamy Save and add variations. Naszym oczom ukazuje się tabelka, na której wyświetlane będą wszystkie utworzone wariacje powiązane z tym produktem. Klikamy Add variation. W wyświetlonym formularzu wypełniamy pola takie jak SKU oraz cena. Pole title w tym wypadku oznacza nazwę tworzonej wariacji. Jak wspomniałem wcześniej, jeden produkt może mieć ich dowolną ilość, zaś sama nazwa wariacji wraz z nazwą produktu będzie wyświetlona w zamówieniu oraz koszyku. W przypadku subskrypcji można stworzyć wariacje rozdzielone względem okresu np. miesiąc, pół roku, rok. Dla tego przykładu stworzyliśmy subskrypcję miesięczną, więc nazwiemy wariację produktu monthly, zaś w polu Billing schedule wybierzemy utworzony wcześniej miesięczny interwał.

Formularz wariacji produktu

Po wciśnięciu przycisku save powracamy do listy wariacji danego produktu. Jak widać na liście tytuł wariacji ostatecznie składa się z nazwy produktu oraz połączonej z nią utworzonej nazwy wariacji.

lista wariacji produktu

W kolejnym kroku możemy przejść do widoku produktu, dodać go do koszyka i przejść proces zakupu. Po pomyślnie zakończonej płatności i złożeniu zamówienia, jeżeli zawierało one jakikolwiek produkt, z którym powiązana jest płatność cykliczna, zostanie utworzona subksrypcja, którą zarządzać możemy pod adresem:

  • /admin/commerce/subscriptions

albo poprzez panel administracyjny:

  • Commerce->Subscriptions

widok subskrybcji

Szerszy opis działania modułu znajduje się tutaj.

Utworzenie samodzielnych płatności cyklicznych

Do tej pory utworzyliśmy subskrypcję jako osobny produkt, który klient może dodać do koszyka również z produktami, które niekoniecznie muszą być subskrypcjami. Co jednak w sytuacji kiedy nie chcemy tworzyć produktów i wariacji np. gdybyśmy chcieli dać użytkownikom możliwość powtarzających się wpłat?

Moduł Commerce Recurring umożliwia również dodanie płatności cyklicznych. Można to zrobić w tym samym miejscu, gdzie znajduje się lista subskrypcji utworzonych na podstawie zamówień, poprzez wciśnięcie przycisku Add subscription i wybraniu opcji standalone. Następnie uzupełniamy formularz zgodnie z wymaganiami. Zauważmy, że w tej sytuacji wymagane jest podanie użytkownika, do którego będzie przypisana subskrypcja.

samodzielna subskrypcja

Szerszy opis znajduje się tutaj.

Podsumowanie

Drupal daje szerokie możliwości do tworzenia dopasowanych rozwiązań e-commerce. Dowiedz się więcej o możliwościach Drupal Commerce z naszych innych tekstów na blogu:

Jeśli natomiast potrzebujesz wsparcia specjalistów, to zajrzyj na naszą stronę poświęconą Drupal Commerce

Najlepsze praktyki