Jednym z najskuteczniejszych sposobów na naukę Magento jest praktyka, dlatego dzisiaj zapraszam Cię na wstęp do listy artykułów, których tematem będzie Modyfikacja listy produktów. Będę pisał m. in. o tym jak:

  • dodać Controller w panelu admina oraz linkować do niego w menu
  • zainstalować tabelę i zrobić model danych
  • zrobić grid z elementami oraz formularz edycji przy użyciu uiComponentów
  • zrobić viewModel i przekazać go na frontend
  • modyfikować layout strony
  • customizować frontend przy pomocy zmian w stylach

Problem do rozwiązania

W programowaniu generalnie chodzi o to, że jest jakiś problem (lub potrzeba biznesowa), który trzeba rozwiązać. Problemy mogą być banalne lub bardzo skomplikowane. Zazwyczaj przychodzi do nas ktoś (najczęściej klient) i mówi „ja chcę to!” i dodaje „ile to będzie kosztować?”

W tym momencie musimy się zatrzymać i zrobić dwie rzeczy:

  1. Zanalizować i zrozumieć co tak naprawdę chcę nasz klient
  2. Ocenić jak trudne i czasochłonne będzie rozwiązanie tego problemu w danej technologii np. Magento 2

Problem, który będziemy rozwiązywać

Przyszedł do mnie klient i powiedział:

Cześć Marcin, mam sklep na Magento 2 i sprzedajemy tam odzież. Chciałbym mieć możliwość dodawania banerów do stron kategorii. Wiem, ze mogę dodawać bannery na górze strony, tylko to mi nie wystarcza. Chciałbym dodawać banery po środku listy produktów. Dasz radę to zrobić?

Żeby dobrze zrozumieć o co chodzi musiałem doprecyzować kilka spraw…

Kliencie, co masz na myśli mówiąc banner?

Banner to może być obrazek, albo jakiś tekst z przyciskiem Call to Action

Co to znaczy, po środku strony?

Jeśli na stronie wyświetla się 60 produktów to ja chcę mieć pokazane tak: 30 produktów, banner i kolejne 30 produktów

Zakres pracy MVP

Po długich dyskusjach z klientem ustaliliśmy zakres pracy i wymagania funkcjonalne produktu, który będzie go satysfakcjonował w minimalnym stopniu (MVP) i będzie dobrą bazą pod rozwój funkcjonalności.

  1. Jako administrator mam możliwość:
    1. Dodawania banerów do wybranych kategorii. Jeden baner może być wyświetlany w wielu kategoriach
    2. Decydowania czy baner ma być włączony, czy wyłączony
    3. Definiowania treści baneru poprzez edytor WYSYWIG
    4. Edytowania banerów
    5. Przeglądania gridów z banerami
  2. Baner ma być wyświetlany w środku listy produktów na stronie kategorii niezależnie od ikośći pokazywanych produktów np. gdy mamy 60 produktów to baner ma być wyświetlony po trzydziestu produktach, gdy mamy dwadzieścia produktów to baner ma się pokazać po dziesiątym produkcie
  3. Baner ma być wyświetlany zarówno w trybie widoku grid jak i lista

Harmonogram pracy

Na podstawie tych wymagań zdefiniowałem harmonogram pracy. Każdy punkt tego harmonogramu to będzie oddzielny artykuł.

  1. Utworzenie modułu i dodanie tabeli do bazy danych
  2. Zamodelowanie danych w Magento
  3. Utworzenie Repository danych dla banerów
  4. Funkcjonalność dodawania i edycji banerów
  5. Grid banerów
  6. Dodanie linkowania do funkcjonalności w panelu admistracyjnym
  7. Utworzenie ViewModelu
  8. Dodanie Bloku z banerami na frontendzie i wyświetlenie go w odpowiednim miejscu na stronie kategorii
  9. Stylowanie funkcjonalności

Modyfikacja listy produktów – podsumowanie

Jak widzisz taka teoretycznie prosta funkcjonalność wiąże się z wieloma zadaniami do wykonania. W kolejnych artykułach będę opisywał co i jak robię. Moduł będzie dostępny na Githubie, a każdy artykuł będzie miał odzwierciedlenie jako Commit w repozytorium.

Ile potrzeba czasu na przygotowanie takiego modułu?

P.S Klient pyta ile czasu mi to zajmie? 😉 Zapraszam Cię do dodanie komentarza z Twoją wyceną!