Custom fields in Commerce module

pm's picture

(obrazek-miniaturka) Drupal jako elastyczne narzędzie do projektowania systemów internetowych niejednokrotnie pozwala na bardzo rozbudowaną personalizację modułów zgodnie z obecnym zapotrzebowaniem użytkownika. Sytuacja ta dotyczy także modułu Commerce. Zalety z korzystania z tego wspaniałego systemu mnożą się zaraz po jego instalacji w systemie. Lawinowy wzrost funkcjonalności oraz cała gama możliwości dostosowania naszego e-sklepu do potrzeb jakie stawia przed nami rynek, zwiększa się wraz z zagłębieniem się w konfigurację Commerce'a.

Jedną z bardziej istotnych i przydatnych rzeczy w tym module są dodatkowe pola, które pozwalają nam na utworzenie dedykowanych produktów lub profili klienckich. Dodawanie pól do wymienionych już encji (produkt, profil klienta itp.) jest, za sprawą standardowego UI Drupal'a, bardzo uproszczone. Cały ten proces jest tożsamy z dodawaniem pól w zwykłych typach zawartości, jakie oferuje nam Drupal. Aby dodać nowe pole do produktu, wystarczy w zakładce "Zarządzaj polami" (ścieżka: /admin/commerce/products/types/product/fields) danego typu produktu, utworzyć kolejną kontrolkę, wybrać jej typ oraz przeprowadzić jej wstępną konfigurację. Operacja ta pozwoli na dodanie np. pola z kolorem dla naszego produktu. Dzięki temu będziemy mogli stworzyć kilka produktów każdy w wybranym przez nas kolorze.

(obrazek)

(1) Na obrazku powyżej zaznaczona została przykładowa ścieżka do automatycznie dodanego typu produktu.

(2) W tym miejscu możemy dodać pole, które będzie ułatwiało nam opisanie naszego produktu. System dodawania nowych pól, jak widać jest identyczny z tym występującym w rodzajach zawartości. 

Sytuacja komplikuje się w momencie dużej ilości opcji - załóżmy, że  potrzebne nam są spersonalizowane produkty zawierające imię i nazwisko klienta. Utworzenie produktów ze wszystkimi możliwymi imionami i nazwiskami w róznych kombinajcach jest prawie niemożliwe, a na pewno... zupełnie niepotrzebne. Z pomocą przychodzi wbudowany mechanizm modułu Drupal Commerce - Typy pozycji zamówienia (Line items) - który pozwala na definiowanie pól, których wartość będzie ustalana przez klienta, dopiero po dodaniu określonego produktu do koszyka (scieżka: /admin/commerce/config/line-items). Wykorzystując tą funkcjonalność, w naszym przypadku wystarczy, że utworzymy jeden typ produktu (np. Karta rabatowa), a następnie dodamy pole imienia i nazwiska (w odpowiednim typie pozycji zamówienia), które zostaną wzbogacone o opcję "Dołącz to pole do formularzy Dodaj do Koszyka dla pozycji zamówienia tego typu.". Teraz klient kupujący naszą spersonalizowaną kartę będzie mógł określić - jeszcze przed dodaniem produktu do koszyka - uzupełniając odpowiednie pola, jakie imię i nazwisko ma na niej widnieć.

(obrazek)

(1) Konfiguracja pola umożliwającego dostosowanie produktu do wymagań klienta.

W analogiczny sposób możemy wzbogacać wszystkie encje związane z Commerce'm. Dodatkowo spersonalizowane pola mogą nam posłużyć w wielu innych przypadkach (np. do sterowania kolejnymi ekranami, które widzi klient lub do manipulacji ceną produktu) jednak te zagadnienia są na tyle obszerne, że znajdzie się dla nich miejsce w osobnym wpisie.

Author