3/2018 Maciej Harbuz

Spis treści

1. O Magento

3

Historia Magento w liczbach

4 5

2. Różnice 1.x vs. 2.x

7

Wydajność Interfejs administratora Interfejs użytkownika Proces zakupowy Wsparcie techniczne Wersja Enterprise

8 10 12 14 15 16

3. Możliwości Magento

18

Kluczowe funkcjonalności Moduły community

4. Instalacja dla każdego Wybór odpowiedniego hostingu Przygotowanie serwera Instalacja Magento2 Instalacja szablonu graficznego Ustawienie odpowiedniej domeny dla sklepu Instalacja SSL Instalacja modułów, czyli dostosowanie Magento 2 do realiów rynku (szczególnie polskiego)

19 22

24 25 27 36 47 54 58 62

5. Migracja Magento1 do Magento2 Migracja rozszerzeń Migracja elementów dostosowania logiki biznesowej Migracja danych Migracja szablonu

Zakończenie

91 92 93 94 96

99

Wstęp Każda firma planująca swój rozwój w obszarze handlu elektronicznego, w końcu stanie przed wyborem odpowiedniego oprogramowania, które umożliwi a może i ułatwi sprzedaż towarów i usług za pośrednictwem szeroko rozumianego Internetu.To jedna z ważniejszych deklaracji przedsiębiorstwa, dlaczego? Po pierwsze jest to inwestycja, która pochłania niemałe zasoby, ale w późniejszym terminie generuje duże zyski. Wybór odpowiedniego oprogramowania pozwoli nam w późniejszych latach uniknąć dodatkowych kosztów, gdy okaże się, że dotychczasowy system nie jest już dla nas wystarczający. Po drugie, każda z firm na szerokie plany na swój rozwój, a dobre oprogramowanie powinno rozwijać się razem z firmą. W innym wypadku zostaniemy postawieni w sytuacji, gdy przedsiębiorstwo będzie musiało zwolnić, aby system mógł zostać odpowiednio dopasowany lub co gorsze postawiony na nowo, żeby dogonić rozwój. Publikacja "Magento2, piąty bieg e-Commerce" została stworzona dla osób, które stoją przed tym trudnym krokiem.

Część 1

O Magento Oferując określone produkty i usługi w Internecie trzeba mieć świadomość tego, że nie jesteśmy jedyną firmą działającą w danym sektorze, a wręcz przeciwnie. Oczywiście nie jest to wcale zła informacja, ponieważ konkurencja potrafi pozytywnie stymulować rozwój firmy. Dodatkowo walka o pozycję lidera w danej branży prowadzi często do wzrostu jakości świadczonych usług, co ma bezpośrednie przełożenie na zadowolenie klientów. Aby zmaksymalizować korzyści płynące z walki konkurencyjnej, warto wziąć pod uwagę każdy aspekt związany z prowadzeniem działalności on-line. Tym samym warto przeanalizować ofertę, dostępne rozwiązania czy sposób komunikacji z klientem. Dzięki obiektywnej ocenie oraz analizie konkurencji jesteśmy w stanie zidentyfikować złe rozwiązania i usprawnić poszczególne procesy.

Część O Magento 1

Strategia Historia

Historia Magento rozpoczyna się na początku 2007 roku w Los Angeles, kiedy firma Varien rozpoczyna pracę nad wyżej wspomnianą platformą e-Commerce. Warto wspomnieć, że na początku platforma została zidentyfikowana pod nazwą "Bento" ale była znakiem towarowym innej firmy. Został dodany przedrostek "Mage", tworząc "Magento". Już tylko siedem miesięcy później, a dokładnie 31 sierpnia 2007 roku, pojawia się pierwsza publiczna wersja beta, która wywołała pozytywny odzew na rynku interesując takich dużych graczy jak eBay, pokładających nadzieję w Magento w roku 2010, przejmując 49% udziałów firmy. Ale to nie koniec historii z popularną platformą aukcyjną, ponieważ w czerwcu 2011 roku poinformowano, że eBay wykupi resztę udziałów, tym samym przejmując firmę. Poprzez rozpad eBay, Magento zostało wyodrębniona jako niezależna firma i została przejęta przez Premiera Private Equity.

Najważniejsze daty Magento: 2007 – rozpoczęcie pracy nad Magento 2009 – wydanie Magento Enterprise Edition 2010 – powstanie Magento dla urządzeń mobilnych 2010 – eBay inwestuje w Magento wykupując 49% akcji 2011 – eBay wykupuje resztę akcji Magento 2015 – Wydanie wersji Magento 2.0

O Magento

Magento w liczbach

Magento jest najbardziej popularną platformą handlową na świecie. Szacuje się, że ponad 250 tysięcy sklepów online sprzedaje dzięki wyżej wymienionemu silnikowi. Magento znacznie wyprzedza swoją konkurencję, zajmując najwyższe podium w rankingu Datanyze z wynikiem aż 15368 (19,6%) zarejestrowanych domen, zaraz za nim WooCommerce 13846 (17,66%).

Źródło: https://www.datanyze.com/market-share/e-commerce-platforms/Alexa%20top%201M

Według rankingu BuiltWith zajmuje wysokie, drugie miejsce, z równie wartościowymi statystykami.

źródło: https://trends.builtwith.com/shop

Część 2

Różnice 1.x vs. 2.x Po niewątpliwym sukcesie Magento 1.x i setkach tysięcy sklepów, które zasilił, przyszedł czas na duże zmiany. Z tego powodu drugą najważniejszą datą w rozwoju narzędzia było wydanie wersji 2.x. Twórcom Magento trzeba oddać, że zrobili tak dużo szumu wokół nowej odsłony silnika, że naprawdę cała branża e-Commerce czekała z zapartym tchem na efekty prac. Cały ten okres był mocno powiązany z pytaniami “czy lepiej poczekać na nowy release, czy wdrażać wersję 1.x”? Ci, którzy postanowili zaczekać, zostali nagrodzeni 17 listopada 2015, kiedy Magento oficjalnie ogłosiło nowe wydanie (źródło: https://magento.com/blog/magento-news/ new-era-commerce-innovation). Teraz, kiedy wersja 2.x już zdążyła się ustabilizować, pojawia się następne pytanie: “czy migrować platformę?”. Żebyś świadomie mógł podjąć decyzję “być czy nie być”, przygotowaliśmy kluczowe różnice, których możesz spodziewać się po nowym Magento. Jeśli nigdy wcześniej nie korzystałeś z platformy, potraktuj tę część jako po prostu kolejne przewagi.

Różnice 1.x vs. 2.x

Wydajność

Największą wadą (a przynajmniej tak się to niefortunnie przyjęło) Magento 1 były problemy z wydajnością i spore zapotrzebowanie na zasoby serwerowe. Zacznijmy od tego, czemu zwrot “niefortunnie”? Otóż w toku rozwoju pojawiło się tyle dodatkowych mechanizmów i technologia poszła na tyle do przodu, że właściwie “bestię” można było ujarzmić. Również zasoby serwerowe znacznie potaniały, więc obecnie nie jest już to taki problem z popularną “jedynką”. Stan bieżący wygląda tak, że znajdą się bardzo duże systemy, które działają świetnie, ale też drobne sklepy, które działają tragicznie. No, ale skoro tak się już przyjęło mówić, to na pewno informacja o tym, że nowe Magento jest zdecydowanie bardziej wydajne, wszystkich powinna ucieszyć.

Rzeczywiście, wersja “pudełkowa” jest szybsza nawet organoleptycznie. Liczbowo przedstawia się to też całkiem nieźle - standardowe funkcjonalności działają o 20-60% szybciej niż odpowiedniki w starej wersji.

źródło: https://vimeo.com/149901366

Co ważne - zoptymalizowane zostało wiele aspektów naraz (czas potrzebny na odpowiedź serwera, renderowanie strony, obliczenia na serwerze, i tak dalej), więc odczuwalne przyspieszenie jest naprawdę duże.

Wszystko to za sprawą “unowocześnienia technologii” i przygotowania Magento2 do nowoczesnych standardów: • zgodność z najnowszymi wersjami PHP, • obsługa Varnish cache,

• mniejsze użycie bibliotek frontendowych, • kompresja obrazków, • obsługa cache po stronie przeglądarki, • optymalizacja baz danych.

Różnice 1.x vs. 2.x

Interfejs administratora

Całkowitej przebudowie w “dwójce” uległ interfejs administracyjny. To, co rzuci się jako pierwsze w oczy, to całkowity redesign, który obecnie dużo lepiej trzyma nowoczesne standardy. Kolejną rzeczą jest zmiana nawigacji z poziomej belki na sidebar.

Po chwili używania nowego panelu, szybko zauważysz, że zakładki przeszły dość istotną reorganizację. O ile na początku może to sprawiać kłopot, na dłuższą metę nowy układ powinien być bardziej intuicyjnym, a poszczególne sekcje łatwiej odnajdywalne.

Do Magento2 doszła jeszcze jedna bardzo ważna funkcjonalność, która w “jedynce” była osiągana dopiero za pomocą modułów - mianowicie, ustawianie widoczności kolumn w tabelach. Aż dziwne, że dopiero teraz twórcy zdecydowali się na taką funkcjonalność, bo jest jedną z bardziej przydatnych.

Różnice 1.x vs. 2.x

Interfejs użytkownika

Z nową wersją odmieniony został także interfejs użytkownika. Co prawda jedną z pierwszych rzeczy, którą robimy przy zakładaniu sklepu, jest zmiana szablonu, ale i tak sporo rzeczy korzysta z natywnego wyglądu i funkcjonalności. A te prezentują się naprawdę schludnie. Poza tym, że jest szybciej (jak wspomnieliśmy w części o wydajności), jest też ładniej i czytelniej. Co więcej, na frontendzie pozbyto się leciwych bibliotek, przez co łatwiej rozbudowuje się szablon zgodnie z nowymi trendami.

Nowy szablon jest też lepiej przystosowany do wersji mobilnej, więc jest to duży ukłon w stronę stale rosnącego rynku (a także, nie ukrywajmy, wyszukiwarek internetowych, które mocno promują podejście “mobile first”).

Różnice 1.x vs. 2.x

Proces zakupowy

Proces zakupowy w Magento 1 był… określimy to dyplomatycznym słowem “niefortunny”. Albo trochę bardziej delikatnie - “mógł być lepszy”. Zbyt wiele kroków powodowało, że była to jedna z najczęściej wymienianych funkcjonalności, a producenci modułów dwoili się i troili, żeby wypracować lepszy proces zakupowy. Magento2 odmienił całkowicie proces, na zdecydowanie lepszy. Łatwiej złożyć zamówienie, łatwiej zarejestrować się po zakupach, kroków jest mniej, a wszytko jest bardziej czytelne. Trudno o lepszą rekomendację.

Różnice 1.x vs. 2.x

Wsparcie techniczne

Magento, nie ukrywa, że wsparcie techniczne dla “jedynki” niebawem się skończy. Co to właściwie oznacza dla posiadaczy starszej wersji systemu? Przede wszystkim głównym problemem mogą okazać się dziury w bezpieczeństwie, które nie zostaną załatane. Poza tym oczywiście nie należy już liczyć na dodatkowe funkcjonalności, czy poprawę tych starych. Praktyka jednak pokazuje, że z powodzeniem na rynku działają instancje Magento w wersji 1.4.x, więc nie brzmi to aż tak strasznie. Dodatkowo, jeśli Twoja platforma jest mocno zmodyfikowana, prawdopodobnie możesz nawet nie korzystać z dobrodziejstw aktualizacji wersji albo patchy. Można więc w pewnym sensie spać spokojnie i nie powinna to być kluczowa zmienna przy podejmowaniu decyzji. Oczywiście Magento2 będzie się cieszyć długim czasem wsparcia. Ciągle wychodzą nowe wersje, są aktualizacje, jest także rozwój. Tutaj dla nowych

instancji jest to bardzo atrakcyjna sprawa, możemy liczyć na dużo ciekawych nowości, które dopiero wygrzewają się w głowach twórców.

Różnice 1.x vs. 2.x

Wersja Enterprise

Jeśli używałeś wersji Enterprise, wiesz, że w przypadku Magento1 nie było aż tak znaczących różnic. Otrzymałeś wsparcie techniczne, kilka dodatkowych funkcjonalności i w zasadzie tyle. W wersji 2 podejście do Enterprise uległo całkowitej zmianie. Twórcy nie ukrywają, że nastąpi dość duże “rozjechanie” w funkcjonalnościach na rzecz B2B w wersji płatnej. Z tego względu ma się ona stać bardziej atrakcyjna dla potencjalnych nabywców. Nie powinniśmy mieć złudzeń - Magento2 w wersji Enterprise będzie po prostu bardziej rozbudowane i przygotowane do zaawansowanej sprzedaży.

Podsumowanie Wojciech Zarzeka, RGB Elektronika Specjalista ds. E-commerce - Team Leader

"

Po przeniesieniu naszego sklepu na platformę Magento opuściliśmy e-Commercowe średniowiecze i zdecydowanie wkroczyliśmy w czasy nowoczesnego handlu online. System ten okazał się nieoceniony przy automatyzacji procesów związanych zarówno ze sprzedażą, logistyką jak i obsługą klienta. Z pomocą Magento mogliśmy nareszcie swobodnie realizować nasze pomysły, dzięki czemu staliśmy się jednym z największych w Europie e-sklepów sprzedających automatykę przemysłową, a nasze przychody z tytułu e-Commerce wzrosły około sześciokrotnie. Dla sklepów obsługujących sprzedaż międzynarodową ważna zaletą będzie na pewno oficjalna integracja z serwisem Paypal oraz niezawodny moduł M2E pozwalający na listowanie produktów min. na eBay oraz Amazon. Dzięki szerokiemu wyborowi modułów potrafiących spełnić niemalże każde oczekiwania właściciela sklepu, jak i popularności systemu w środowisku developerskim uważam Magento za najlepszy wybór dla e-biznesu aspirującego do miana lidera w swojej branży.

"

Część 3

Możliwości Magento Magento, jest przede wszystkim platformą, która oferuje w zasadzie nieograniczone możliwości rozwoju. Wszystko to zostało osiągnięte dzięki licencji open-source i dobrze opracowanej warstwie technicznej, która pozwala na stosunkowo (w porównaniu do innych rozwiązań) łatwe skalowanie i dalszy rozwój funkcjonalności. To przede wszystkim ten aspekt powoduje, że na Magento decyduje się coraz więcej sklepów, bo zarówno małe biznesy, jak i bardzo zaawansowane platformy sprzedażowe mają szansę zaistnieć, używając tej właśnie technologii. Dodajmy do tego całkiem pokaźny zestaw funkcjonalności “out-of-the-box” i szerokie wsparcie community i wychodzi nam suma korzyści, którą trudno uzyskać jakimkolwiek innym rozwiązaniom.

Możliwości Magento

Kluczowe funkcjonalności

1. OFERTA PRODUKTOWA Niezależnie od punktu widzenia, który przyjmiemy, każdy sklep żyje przede wszystkim ofertą produktową. A tę w Magento2 można dostosować do wielu specyficznych potrzeb. Mamy zatem do dyspozycji: • produkty proste, • produkty konfigurowalne, • grupy produktowe, • zestawy produktowe, • produkty wirtualne, • produkty “do pobrania”.

Ten zestaw wydaje się spełniać wszystkie podstawowe potrzeby biznesu. Warto dodać, że każdy typ produktu tworzy się i zarządza intuicyjnie, więc każdy sobie poradzi.



Warto też zwrócić uwagę na zarządzanie danymi produktowymi. Magento2 umożliwia tworzenie dowolnych atrybutów, ich wartości, a także grup atrybutów, które później zostaną wykorzystane na sklepie. Dla Ciebie oznacza to kontrolę nad danymi produktowymi, a klientom pozwala na łatwiejsze znalezienie interesującego ich produktu.



Poza tym produkty możemy oczywiście kategoryzować, dowolnie układać, modyfikować i tak dalej.

2. CENNIKI Magento2 oferuje jeden z najbardziej zaawansowanych modeli zarządzania ceną produktu. Możemy tu ustawić cenę “z metki”, ceny dla grup użytkowników, promocje katalogu, promocje na koszyku, ceny wolumenowe i ceny specjalne.

Dzięki takiej możliwości konfiguracji dużo łatwiej dostosować sprzedaż do konkretnych uwarunkowań biznesu.



Same promocje dostarczane są z zaawansowanym kreatorem, który (choć na pierwszy rzut oka dość toporny w obsłudze) umożliwia utworzenie dowolnej reguły, która automatycznie będzie łapała także nowe produkty.

3. ŁATWE ZAKUPY

Tak, jak było to wspomniane wcześniej, Magento2 zupełnie odmieniło proces zakupowy, oczywiście na zdecydowany plus. Dzięki temu zakupy są dla klientów intuicyjne i nie powinny powodować większych problemów.

4. ANALITYKA Sprzedaż to także monitoring i wyciąganie odpowiednich wniosków. Magento2 dostarcza operatorom sklepu bardzo dużo danych sprzedażowych. Dostaniesz do dyspozycji dashboard sprzedażowy, raporty, informacje o koszykach klientów, etc.

Poza wbudowanymi funkcjonalnościami, Magento2 oferuje (w wersji pudełkowej lub za pomocą dodatkowych modułów) integrację z narzędziami zewnętrznymi, które dostarczą dodatkowe materiały analityczne.

5. MULTISTORE I KONFIGURACJA

W Magento2 skonfigurować można praktycznie wszystko. Dzięki dobrze opracowanej architekturze otrzymujemy możliwość tworzenia dowolnej ilości sklepów i widoków na jednej instancji, a każdy sklep możemy spersonalizować pod całkowicie inne modele sprzedażowe. Ta funkcjonalność przydaje się szczególnie w dużym biznesie, gdzie

często występuje kilkanaście sklepów oferujących różne grupy towarowe.

Co ważne, taka konfiguracja dalej może współgrać z wysoką wydajnością systemu, a zyskujemy centralizacją obsługi i integracji sklepu.

Możliwości Magento

Moduły community

Trudno wyobrazić sobie e-Commerce bez rozwoju, szczególnie w dobie tak dynamicznej ekspansji sprzedaży elektronicznej. To oczywiście może generować duże koszty i należy być na to przygotowanym. Magento, posiada największe community wśród konkurencji, co w rezultacie dostarcza mnogość gotowych modułów, które można dokupić do sklepu. Co to właściwie oznacza dla Ciebie? Przede wszystkim to szansa na obniżenie kosztów rozwoju - moduły kosztują kilkunastokrotnie mniej niż wdrażanie odpowiadających im funkcjonalności w formie dedykowanej. Dodatkowo takie moduły mogą być źródłem inspiracji, prezentują naprawdę dobrze przemyślane i intuicyjne rozwiązania.

W przeciwieństwie do innych narzędzi sklepowych jakość zewnętrznych modułów stoi na bardzo wysokim poziomie. Jest kilku-kilkunastu producentów modułów, którzy oferują money back, wsparcie techniczne i jakość na najwyższym poziomie. Jest z czego wybierać.

Podsumowanie Mariusz Łopuch, X-Coding IT Studio Magento Developer

"

Ważnym atutem Magento jest jego dostępność. Licencja Open Software License pozwala na darmowe korzystanie, tym samym możemy liczyć na liczne aktualizacje oraz moduły ulepszające system. Magento jest oprogramowaniem wysoce konfigurowalnym co daje nam możliwość dopasowania całej infrastruktury wedle oczekiwań oraz połączenia z każdym pododdziałem firmy tworząc idealne działający "ekosystem".

"

Część 4

Instalacja dla każdego Magento jest narzędziem bardzo zaawansowanym, a jego możliwości dopasowania pod wymagania firm są bardzo duże, to jego instalacja wersji podstawowej nie należy do ciężkich zadań. W tym rozdziale wspólnie krok po kroku przejdziemy przez instalację Magento2 zatrzymując się nieco dłużej w miejscach, które mogą sprawić nieco więcej problemu.

Instalacja dla każdego

Wybór odpowiedniego hostingu

Każdy kto chce otworzyć sklep internetowy musi podjąć decyzję na jakim hostingu chce utrzymywać swoją platformę sprzedażową. Decydując się na Magento2 musimy mieć świadomość, że najsłabsze (często też najtańsze) oferty na rynku będziemy musieli pominąć w rozważaniach. Oczywiście wymagania, jakie stawiamy naszemu sprzętowi muszą zależeć od ruchu jaki pojawi się na naszej stronie. Dla naszych potrzeb rozważymy podstawowe konfiguracje jakie są potrzebne do odpalenia Magento2 i zbadania pomysłu czy w ogóle taki sklep internetowy wypali. Jednym z rozwiązań może być wybór gotowych instalacji Magento2. Przykładowo na portalu https://www.properhost.com/magento2 możemy przez 30 dni testować darmową instalację magento. W dłuższej perspektywie jednak takie rozwiązania będą droższe od serwerów VPS lub

serwerów dedykowanych. Ponieważ nasz sklep może odpalić rewelacyjnie spróbujmy postawić go na jakimś serwerze w chmurze, będziemy mogli dynamicznie dodać więcej zasobów, jeżeli ruch będzie większy, ale nie zapłacimy za dużo, gdy będzie go mało i moc obliczeniowa będzie mało ważna. Ja pokażę konfigurację takiego środowiska na przykładzie oktawave.com

Instalacja dla każdego

Przygotowanie serwera Zacznijmy zatem od założenia konta. Prowadzi do tego prosty formularz:

W czasie pisania tego artykułu mamy promocję 25 zł na start (trzeba tylko zweryfikować swoje konto przy pomocy karty kredytowej albo po kontakcie z konsultantem, wybieram kartę, bo będzie szybciej). Po rejestracji przychodzi do nas mail z adresem do logowania: https://admin.oktawave. com/Pages/Login.aspx. Po pierwszym logowaniu musimy wybrać kilka opcji podstawowych:

Zwróćcie uwagę na wszystkie pola, nie każde możemy potem zmienić.

Po wybraniu podstawowych kilku opcji możemy przystąpić do tworzenia instancji naszego serwera. Klikamy “+ Dodaj instancję OCI” i przechodzimy dalej. Do wyboru będziemy mieli kilka gotowych szablonów instalacji, ja wybieram Debian 8.

Z dostępnych konfiguracji sprzętowych wybieram jedną z najprostszych - zawsze będziemy mogli to potem dostosować.

W szczegółach instancji wpisujemy nazwę naszego serwera oraz wybieramy dysk. Jeżeli wiemy, że będziemy mieli dużo produktów to możemy od razu wybrać nieco większy dysk (powiedzmy 50GB), ale na początek ja zostanę przy najniższych parametrach.

Następnie wybieramy metodę autoryzacji. Lepszym wyborem są oczywiście klucze SSH, ale jeżeli nie robiliśmy tego wcześniej to w tym miejscu nie będę się na tym skupiał, efekt końcowy będzie dokładnie taki sam.

Na następnym ekranie już tylko potwierdzamy nasze zamówienie. Powinniśmy otrzymać komunikat: Instancja jest w trakcie tworzenia. Po ukończeniu operacji otrzymasz e-mail potwierdzający utworzenie instancji oraz zawierający dane dostępowe do niej. Możesz również obserwować pasek postępu u góry ekranu, na bieżąco pokazuje on postęp realizacji zadania. Teraz czekamy na wiadomość email z potwierdzeniem utworzenia dla nas nowej instancji serwera w chmurze. Jak nasza usługa jest już dostępna na liście naszych wszystkich OCI.

możemy zacząć dalsze prace.

Uwaga -nie chcesz korzystać z chmury? - nie ma problemu. Powinieneś zdecydować się na serwer dedykowany lub VPS z dostępem do roota - unikniesz w ten sposób potencjalnych problemów. W kolejnym kroku musimy dostać się do naszej konsoli SSH. W oktawave wchodzimy w nasza instancję i klikamy na “Pokaż” przy danych dostępowych.

Zalogować się do SSH możemy np. przez program Putty. Wystarczy podać IP naszego serwera (IP zostało przesłane w mailu po utworzeniu instancji OCI).

W okienku, które wyskoczy wpisujemy usera root i hasło, z danych dostępowych z panelu oktawave.

Następne kroki to zainstalowanie podstawowych elementów potrzebnych do pracy naszego serwera. Szczegółowa instrukcja nie jest przedmiotem tego wpisu dlatego ją pominę (jak np. kwestie bezpieczeństwa czy wydajności). Po kolei wykonujemy następujące komendy z poziomu konsoli: apt-get update

apt-get upgrade

apt-get install apache2 a2enmod rewrite

service apache2 restart

apt-get install mysql-server (tutaj zostaniemy poproszeni o podanie hasła do administratora bazy danych)

edytujemy plik /etc/apt/sources.list i dodajemy na jego końcu 2 linie: deb http://packages.dotdeb.org jessie all

deb-src http://packages.dotdeb.org jessie all

następnie wykonujemy polecenia: wget https://www.dotdeb.org/dotdeb.gpg apt-key add dotdeb.gpg apt-get update

apt-get install php7.0 php7.0-gd php7.0-xml php7.0-

mysql php7.0-mbstring php7.0-mcrypt php7.0-curl php7.0soap php7.0-intl php7.0-zip

Przechodzimy do katalogu /etc/apache2/sites-available/ i tworzymy tam plik konfiguracji vHosta o nazwie [IP _ servera].conf u mnie będzie to 176.119.58.148.conf i wklejamy tam:

ServerAdmin [email protected] ServerName

176.119.58.148

# Indexes + Directory Root. DirectoryIndex index.html

DocumentRoot /home/www/176.119.58.148/

Options -Indexes +FollowSymLinks +MultiViews AllowOverride all

Require all granted





Zapisujemy plik i odpalamy polecenia: a2ensite 176.119.58.148.conf service apache2 reload

Tworzymy teraz katalog /home/www/176.119.58.148/ oraz w środku plik index.html o dowolnej treści. Dodatkowo odpalamy polecenie chown www-data:www-data . -R

w nowo utworzonym folderze. Teraz wchodząc na adres 176.119.58.148 (oczywiście tutaj wstawcie własne IP) w przeglądarce powinniśmy widzieć napis z pliku index.html. Ta część konfiguracji za nami, mogą ją przeprowadzić osoby, które nie boją się pracy na serwerze. Jeżeli nie jesteś taką osobą,nic nie szkodzi. Wybierz gotowe rozwiązanie lub zgłoś się do odpowiedniej firmy, która to zrobi za Ciebie.

Instalacja dla każdego

Instalacja Magento2

Przechodzimy na stronę https://magento.com/tech-resources/download i wybieramy do ściągnięcia najnowsza wersję Magento2 z danymi przykładowymi, ja wybrałem wersję .zip

Żeby móc pobierać elementy ze strony magento trzeba się zarejestrować dlatego najpierw wyskoczy nam propozycja logowania lub założenia konta.

Założenie konta to tylko prosty formularz. Rejestracja nie powinna stanowić dla nikogo większego wyzwania dlatego tutaj już pominę szczegóły. Po wypełnieniu formularza dostaniemy wiadomość email z linkiem do potwierdzenia rejestracji...

...po ujrzeniu...

...możemy wrócić na stronę od której ten rozdział się zaczął (https://magento.com/tech-resources/download), zalogować się i rozpocząć pobieranie Magento2. Po pobraniu pliku musimy go przenieść na nasz serwer. Zależnie od tego jaki mamy serwer może to odbyć się inaczej, ale jeżeli mamy dostęp do SSH jak na naszym oktawave to możemy użyć programu FileZilla i skorzystać z protokołu SFTP.

Plik przerzucamy do naszego utworzonego wcześniej folderu (u mnie /home/www/176.119.58.148/).

home/www/176.119.58.148/).

Następnie przechodzimy w SSH do naszego folderu. Usuwamy wcześniejszy plik index.html. Instalujemy program do rozpakowania archiwum apt-get install unzip

Rozpakowujemy archiwum poleceniem unzip Magento-CE-2.1.7 _ sample _ data-2017-05-30-03-17-57.zip

(plik może się oczywiście nazywać nieco inaczej). Usuwamy od razu niepotrzebny plik .zip rm Magento-CE-2.1.7 _ sample _ data-2017-05-30-03-17-57.zip

i ustawiamy odpowiednie uprawnienia chown www-data:www-data . -R

Teraz możemy już przejść do konfiguracji. Ta część jest już zdecydowanie prostsza od poprzednich (chociaż jeszcze nie koniec z SSH).Wchodzimy na nasze IP przez przeglądarkę i widzimy...

...klikamy “Agree and Setup Magento”, nastąpi sprawdzanie wymagań pod kątem serwera.

Jeżeli wszystko jest ok klikamy “Next”. Teraz musimy podać dane do bazy danych (ale oczywiście najpierw ją stworzymy). Logujemy się do mysql poleceniem mysql -u root -p (podajemy hasło takie jak ustawiliśmy przy instalacji),

odpalamy kolejno komendy (nazywam bazę danych “xcoding_magento2”, tak samo będzie nazywał się użytkownik do bazy danych i będzie miał hasło “gOna75Xi”). CREATE DATABASE `xcoding _ magento2` /*!40100 COLLATE 'utf8 general _ ci' */;

CREATE USER 'xcoding _ magento2'@'localhost' IDENTIFIED BY

'gOna75Xi'; GRANT USAGE ON *.* TO 'xcoding _

magento2'@'localhost'; GRANT SELECT, EXECUTE, SHOW VIEW, ALTER, ALTER ROUTINE, CREATE, CREATE ROUTINE, CREATE TEMPORARY TABLES, CREATE VIEW, DELETE, DROP, EVENT, INDEX, INSERT, REFERENCES, TRIGGER, UPDATE, LOCK TABLES

ON `xcoding\ _

magento2`.* TO 'xcoding _ magento2'@'localhost' WITH GRANT OPTION;

FLUSH PRIVILEGES;

Wracamy do przeglądarki i uzupełniamy dane.

Na kolejnym kroku widzimy nasz adres do panelu administracyjnego : http://176.119.58.148/admin_xwsntl możemy go zmienić na jakiś bardziej przyjazny (ale nie admin). Na kolejnym kroku wybieramy strefę czasową, walutę i język.

Kolejny krok to tworzenie konta dla admina...

...i na końcu klikamy w “Install Now”.

Czas na podziwianie postępu instalacji.

Jeżeli wszystko pójdzie dobrze to zobaczymy ekran z podsumowaniem instalacji...

...a wchodząc na adres http://176.119.58.148/ zobaczymy zainstalowane Magento2.

Opina eksperta Łukasz Sznajdrowski, iluve.com CTO

"

iluve.com to sklep internetowy z globalnymi aspiracjami. Firma została zaprojektowana wyłącznie z myślą o e-Commerce, dlatego decyzja o wyborze silnika sklepy była kluczowa dla powodzenia projektu oraz funkcjonowania firmy. Szukaliśmy rozwiązania z dużymi możliwościami funkcjonalnymi, elastycznego i wydajnego. Magento w naszej opinii spełnia wszystkie te warunki. Otwarty kod źródłowy i rozwinięta społeczność pomaga w nieustannym rozwoju. Wbudowane API umożliwia komunikację z innymi systemami w firmie. Wysoka wydajność pozwala zarządzać ofertą około 100k SKU. Natomiast obsługa wielu sklepów w ramach jednego silnika daje możliwość ekspansji na kolejne rynki. Projekt został uruchomiony kilka tygodni po wypuszczeniu wersji 2.0. Decyzja o jej zastosowaniu była bardzo odważna, ale uznaliśmy, że w perspektywie kilku miesięcy da nam to przewagę konkurencyjną nad firmami, które zmierzą się z tematem migracji z wersji 1.x na 2.x.

Przy wszystkich wspomnianych zaletach Magento 2, biorący pod uwagę pracę na tym oprogramowaniu powinni jednak zdawać sobie sprawę z tego, że w zależności od wymagań funkcjonalnych sklepu oparcie jego silnika o Open Software License Magento może oznaczać zarówno stosunkowo wysokie koszty wdrożenia jak i utrzymania odpowiedniej infrastruktury. Przez co system - w mojej ocenie - nie dla każdego będzie optymalnym wyborem.

"

Instalacja dla każdego

Instalacja szablonu graficznego

Standardowy wygląd Magento2 (template Luma) nie jest brzydki, jest responsywny - ogólnie moglibyśmy go używać. Standardowy szablon Magento wg mnie to kiepski pomysł i musimy wybrać jakiś szablon, który będzie nam się podobał i będzie “na czasie”. Ja wybrałem akurat darmowy szablon FreeGo Każdy szablon ma dołączoną instrukcję instalacji, zazwyczaj wystarczy wrzucić odpowiednie pliki na serwer. Tak jest w moim przypadku, do katalogu /home/www/176.119.58.148 wystarczy skopiować katalog app z szablonu. Tak jak poprzednio do tego celu użyjemy programu FileZilla (jeżeli jesteś biegły w używaniu konsoli to polecam wrzucić spakowany plik i rozpakować odpowiednie rzeczy bezpośrednio na serwerze - powinno być znacznie szybciej). Następnie przechodzimy do panelu administracyjnego (dla przypomnienia,

u mnie jest to: http://176.119.58.148/admin_xwsntl/) do konfiguracji zawartości (Content -> Design -> Configuration). Widzimy listę witryn, sklepów i widoków sklepu na naszej instancji (w naszym przykładzie jest 1 witryna, 1 sklep z 1 widokiem sklepu).

Teraz wystarczy, że wyedytujemy witrynę i nadamy jej nasz nowy szablon - “Solwin FreeGo”. Sklep i widok sklepu automatycznie otrzymają nowy szablon (możemy oczywiście przypisywać różne szablony do różnych widoków sklepu). Po tej operacji wyskoczy nam powiadomienie, że powinniśmy wyczyścić cache - oczywiście należy to zrobić i już możemy się cieszyć naszym nowym wyglądem sklepu. I tutaj pojawia się jedno utrudnienie w naszym przypadku - sklep przestał działać. Nie jest to powód do zdenerwowania, na pewno da się to poprawić. Sięgamy do dokumentacji szablonu i zauważamy, że wymaga on wykonania jednego polecenia z linii komend.

Puszczamy z poziomu ssh polecenie php bin/magento setup:upgrade

i po wyczyszczeniu cache możemy cieszyć się w pełni naszym nowym wyglądem sklepu.

Czasami możemy natrafić na szablon, który będzie wymagał nieco więcej konfiguracji - wtedy należy pracować bezpośrednio z dokumentacją danego szablonu. Tak jest w tym przypadku, twórcy szablonu pozostawili dla nas miejsca na wstawienie odpowiednich obrazków i treści. Natomiast dzięki przygotowaniu tych miejscu od razu mamy pogląd na to jak to będzie finalnie wyglądało oraz co potrzebujemy przygotować.

Dobrą praktyką jest domyślne wyłączenie edytora WYSIWYG na sklepie (można go zawsze włączyć, ale będzie często przeszkadzał bardziej niż może pomóc - chyba, że jesteś osobą, która nie ma żadnej wiedzy odnośnie HTMLa). W tym celu wchodzimy w PA w Stores -> Configuration -> Content Management i zaznaczamy opcję Enable WYSIWYG Editor: Disabled By Default. Jeżeli jesteśmy bardziej pewni siebie możemy wybrać opcję: Disabled Completely. W naszym zainstalowanym szablonie autorzy przygotowali własny panel zarządzania wyglądem:

Zazwyczaj takie rozwiązanie pozwala na bardziej intuicyjne zarządzanie przez osoby, które nie miały wcześniej dużo doświadczenia z e-Commerce. Może niestety być mało komfortowe dla osób, które biegle posługują się danym silnikiem (u nas - Magento 2) lub doświadczonych programistów. Domyślnie w naszym świeżo zainstalowanym szablonie mamy dodaną już

stronę główną, która składa się z kilku bloków, które możemy znaleźć w panelu administracyjnym w zakładce Content -> Blocks

Każdy z nich należy wyedytować tak, żeby nabrał treści ważnej dla naszego sklepu. Wykonujemy to poprzez wybór Select -> Edit (po prawej stronie każdego bloku). Treść edytujemy standardowo. Możemy także skorzystać z wbudowanego narzędzia Magento do dodania obrazków do treści. W edycji bloku wybieramy “Insert Image”

i możemy załączyć wiele plików ze zdjęciami do dedykowanego folderu (dobrze jest pogrupować obrazki w jakieś logicznie spójne foldery).

Po dodaniu obrazków i wybraniu jednego z nich klikamy “Insert file” i od razu edytor wstawi nam odpowiedni tag html do treści (możemy go oczywiście edytować, zachowajmy tylko poprawną ścieżkę do pliku w formie {{media url="wysiwyg/xcoding _ homepage/post _ 400x250.png"}}

Taki wpis w dowolnym bloku lub stronie spowoduje wstawienie linku do obrazka z odpowiedniej lokalizacji. Zobaczmy jaki efekt uzyskaliśmy po przygotowaniu odpowiednich obrazków oraz treści:

Widzimy, że nasz sklep nabiera już ciekawszego kształtu i w końcu mamy coś co można zobaczyć i co jest bliskie wersji ostatecznej naszej strony głównej (oczywiście to jest tylko przykład wyglądu). W poprzedniej części zakończyliśmy naszą pracę na wdrożeniu strony głównej na nowym wyglądzie sklepu. Przejmy do jeszcze jednego niezbędnego do opublikowania sklepu elementu, a następnie zajmiemy się instalacją dodatkowych modułów.

Instalacja dla każdego

Ustawienie odpowiedniej domeny dla sklepu

Do tej pory posługiwaliśmy się adresem: http://176.119.58.148 co oczywiście nie sprzyja zapamiętaniu adresu naszego sklepu przez użytkowników. Po to właśnie w internecie używane są domeny. Ja wybrałem dla mojego sklepu subdomenę mage2.sellbetter.pl. Moja domena jest wykupiona w serwisie nazwa.pl. Zobaczmy jak odpowiednio skonfigurować u tego dostawcy naszą domenę.

Przechodzimy do strony: https://konto.nazwa.pl/zaloguj-sie.html i logujemy się w formularzu po prawej stronie (dygresja - nie jest to najlepiej zaprojektowana strona pod kątem UX - na pierwszy rzut oka logowanie nie jest zbyt istotne, a przecież jesteśmy na stronie logowania).

Na stronie głównej naszego konta klikamy “Domeny”...

..i wybieramy domenę z listy naszych domen. Klikamy “konfiguruj”.

Wybieramy z listy dostępnych opcji “Przekierowanie na zewnętrzny adres IP” i wpisujemy tam adres IP naszego serwera (czyli 176.119.58.148). Teraz musimy przygotować nasz serwer do obsługi nowej domeny. Logujemy się do SSH do naszego sklepu. W linii poleceń wpisujemy: nano /etc/apache2/sites-available/176.119.58.148.conf

i dodajemy jedną linię do naszej konfiguracji: ServerAlias mage2.sellbetter.pl

zaraz po wpisie ServerName

Nasz plik konfiguracyjny wygląda teraz następująco:

ServerAdmin [email protected] ServerName

176.119.58.148

ServerAlias mage2.sellbetter.pl # Indexes + Directory Root. DirectoryIndex index.html

DocumentRoot /home/www/176.119.58.148/



Options -Indexes +FollowSymLinks +MultiViews AllowOverride all

Require all granted





Zapisujemy plik (ctrl + o) i wychodzimy z edytora (ctrl + x). Teraz musimy zrestartować serwer żeby nowe ustawienia zaczęły działać. W tym celu wykonujemy polecenie: service apache2 restart

Musimy też wprowadzić odpowiednie ustawienia w panelu administracyjnym naszego sklepu. Przechodzimy do ustawień Stores -> Configuration -> General -> Web. Musimy zmienić ustawienia w sekcjach Base URLs oraz Base URLs (Secure) (to przyda się jeszcze później jak

będziemy konfigurować certyfikat SSL dla naszego sklepu). Po zapisaniu ustawień zostaniemy wylogowani z panelu administracyjnego i powinniśmy zostać automatycznie przeniesieni na nowy adres (u mnie mage2.sellbetter.pl).

Dobrze jest zalogować się do panelu administracyjnego i wyczyścić jeszcze dodatkowo cache.

Instalacja dla każdego

Instalacja SSL

W parze z przypisaniem domeny powinno być też przypisanie certyfikatu SSL do sklepu. Można oczywiście taki certyfikat wykupić u jakiegoś usługodawcy (możliwe, że dostaniemy go w gratisie razem z domeną). Ja jednak pokażę jak to zrobić bez dodatkowych kosztów.

Zanim jednak przystąpimy do konfiguracji certyfikatu dla domeny musimy zmienić 2 elementy konfiguracji w magento. Przechodzimy do wspomnianej wcześniej sekcji: Stores -> Configuration -> General -> Web -> Base URLs (Secure) i zaznaczamy opcje “Yes” dla Use Secure URLs on Storefront oraz Use Secure URLs in Admin.

Zapisujemy konfigurację. Sklep może przestać działać, ale nie przejmujemy się tym w tym momencie i kontynuujemy ustawianie certyfikatu. Z linii poleceń naszego serwera wykonujemy komendy: echo 'deb http://ftp.debian.org/debian jessie-backports main' | tee /etc/apt/sources.list.d/backports.list apt-get update

apt-get install python-certbot-apache -t jessie-backports

(zostaniemy zapytani,czy kontynuować instalację, potwierdzamy przez Y + Enter).

certbot --apache

zobaczymy teraz komunikat z wyborem domeny, dla której będziemy wystawiali certyfikat. U mnie wygląda to tak: Saving debug log to /var/log/letsencrypt/letsencrypt.log

Which names would you like to activate HTTPS for?

------------------------------------------------------------------------------

1: mage2.sellbetter.pl

------------------------------------------------------------------------------

Select the appropriate numbers separated by commas and/or spaces, or leave input

blank to select all options shown (Enter 'c' to cancel):

Wybieramy 1 i wciskamy Enter. Teraz będziemy poproszeni o podanie adresu email. Enter email address (used for urgent renewal and security notices) (Enter 'c' to cancel):

Wpisujemy adres e-mail, na który będą przychodziły powiadomienia o wygasaniu certyfikatu lub informacje dotyczące bezpieczeństwa (nie bójmy się spamu) i Enter. Następnie czytamy regulamin usługi letsencrypt.com Please read the Terms of Service at

https://letsencrypt.org/documents/LE-SA-v1.1.1-August-1-2016.pdf. You must agree

in order to register with the ACME server at https://acme-v01.api.letsencrypt.org/directory

------------------------------------------------------------------------------

(A)gree/(C)ancel:

i potwierdzamy poprzez A + Enter. Na koniec wybieramy czy przekierowywać cały ruch na szyfrowane połączenie czy nie.

Please choose whether HTTPS access is required or optional.

------------------------------------------------------------------------------

1: Easy - Allow both HTTP and HTTPS access to these sites

2: Secure - Make all requests redirect to secure HTTPS access ------------------------------------------------------------------------------

Select the appropriate number [1-2] then [enter] (press 'c' to cancel):

Ja wybieram opcję 2 bo chciałbym, aby cała komunikacja w obrębie sklepu była wykonywana przy pomocy bezpiecznego połączenia z użyciem SSL. Wracamy teraz do przeglądarki. Zarówno nasz panel administracyjny, jak i sklep powinny działać bez problemu i powinniśmy widzieć, że połączenie jest bezpieczne.

Instalacja dla każdego

Instalacja modułów, czyli dostosowanie Magento 2 do realiów rynku

Skoro nasz sklep jest już zabezpieczony certyfikatem SSL to jest to dobry moment na skonfigurowanie płatności internetowych. Pokażę jak to zrobić na przykładzie PayU.

1. Moduł PayU Niezależnie od punktu widzenia, który przyjmiemy, każdy sklep żyje przede wszystkim ofertą produktową. A tę w Magento2 można dostosować do wielu specyficznych potrzeb. Mamy zatem do dyspozycji: https://github.com/ORBA/magento2_payupl. W celu zainstalowania tego modułu wchodzimy na powyższy link i klikamy “Download ZIP”

Pobrany plik rozpakowujemy i zawartość rozpakowanego katalogu “magento2_payupl-master” wrzucamy przez FTP do naszego sklepu w ścieżkę: app/code/Orba/Payupl. Folderów Orba oraz Payupl nie będzie od razu - musimy je najpierw utworzyć.

Następnie z linii komend wykonujemy polecenia: php bin/magento module:enable orba _ payupl php bin/magento setup:upgrade



Jeżeli wszystko poszło gładko to powinniśmy widzieć nowy sposób płatności w naszym systemie. Możemy go odnaleźć wchodząc w panelu administratora w zakładkę: Stores -> Configuration -> Sales -> Payment Methods -> Other Payment Methods -> ORBA | Payu.pl



Zanim jednak skonfigurujemy metodę płatności po stronie Magento musimy dodać nasz nowy sklep do PayU.pl. Zakładam, że konto w systemie PayU.pl jest już założone i wystarczy tylko dodać sklep. Jeżeli nie masz jeszcze konta w systemie PayU.pl to na pewno poradzisz sobie z jego dodaniem na stronie PayU.pl (“Załóż konto Sprzedawcy”). Cały proces potrafi być zmieniany przez PayU.pl dlatego nie dołączam screenów i nie podpowiadam jak to zrobić. PayU.pl ma bardzo sprawnie reagującą obsługę, która pomoże w założeniu konta w przypadku problemów. Do pełnej aktywacji potrzebne będą skany dokumentów - wszystko wyjaśnione jest przystępnie w samym procesie rejestracji w PayU.pl. Jeżeli konto już jest utworzone przechodzimy do tworzenia nowego punktu płatności. Przechodzimy do zakładki



Płatności elektroniczne -> Moje sklepy

Dodajemy nowy sklep i podajemy jego dane.

Następnie konfigurujemy sposób działania integracji sklepu z PayU.pl ja polecam wybór “Classic API”. Musimy podać domenę naszego sklepu, adres na który ma przejść użytkownik w przypadku błędu w procesie płatności (np. zrezygnuje z płatności), adres na który ma przejść użytkownik w przypadku pozytywnej płatności oraz adres do przesyłania raportów (niewidoczne dla użytkownika - na tej podstawie zmieniają się statusy zamówienia w Magento). Dla naszej wtyczki są to odpowiednio adresy:

Adres powrotu - błąd

mage2.sellbetter.pl/orba _ payupl/payment/end/ error/%error%/session _ id/%sessionId%

Adres powrotu poprawnie

mage2.sellbetter.pl/orba _ payupl/payment/end

adres raportów

mage2.sellbetter.pl/orba _ payupl/payment/notify

Po kliknięciu “Dodaj sklep” zostaną nam pokazane dane, które będziemy musieli uzupełnić we wspomnianej wcześniej konfiguracji płatności po stronie Magento2. Nie musimy tych danych zapisywać - będą one dostępne zawsze w panelu PayU.pl.

2. Moduł SMTPro

Przed skonfigurowaniem płatności dodawaliśmy do naszego sklepu domenę. Prawdopodobnie razem z domeną mamy jakiegoś dostawcę, który zapewnia nam obsługę poczty i chcielibyśmy skorzystać w sklepie z maili z tej samej domeny. W tym celu musimy skonfigurować

ustawienia SMTP w sklepie. Tutaj czeka nas niemiła niespodzianka.

Standardowe ustawienia Magento, nie pozwalają ustawić zewnętrznego serwera SMTP! Na szczęście niedługo po opublikowaniu Magento w wersji 2 zaczęły powstawać moduły SMTP. Jednym z takim modułów które możemy zainstalować jest https://www.mageplaza. com/magento-2-smtp/



Moduł jest darmowy i ma całkiem bogaty zestaw konfiguracji. Zakup (moduł jest darmowy, ale musimy przejść przez standardowy proces zakupu bez płatności) jest bardzo prosty, więc nie będę go szczegółowo opisywał. Po zakupie przechodzimy do strony produktów do pobrania: https://store.mageplaza.com/downloadable/customer/products/

i ściągamy moduł.

W czasie tworzenia artykułu pobrany plik nazywa się smtp_v1.0.1_ ce_mageplaza.zip. Rozpakowujemy go i podobnie jak wcześniej przy module PayU kopiujemy pliki do folderu głównego gdzie mamy zainstalowane magento na naszym serwerze. Odpalamy komendę ./update.sh i po chwili możemy wejść w panel administratora

i zobaczymy nowe możliwości konfiguracji SMTP, które dodał dla nas

moduł. Przechodzimy do konfiguracji Mageplaza -> Configuration -> SMTP Configuratio Options. Wybieramy z listy dostępnych dostawców

obsługi poczty i klikamy Autofill.

Jeżeli nie ma naszego dostawcy na liście to po prostu wpisujemy dane ręcznie. uzupełniamy resztę danych (w naszym przypadku to login i hasło do poczty Gmail). Zapisujemy konfigurację. Możemy jeszcze

sprawdzić czy nasze ustawienia działają poprzez wpisanie Test Email Gotowe, mamy skonfigurowane SMTP a naszym sklepie. Teraz należy tylko odpowiednio skonfigurować emaile w zakładce Stores -> Configuration -> Store Email Addresses. Pamiętaj, że nie wszystkie

skrzynki pozwalają wysyłać wiadomości email jako inny nadawca niż faktycznie jest skrzynka pocztowa (np. próba wysłania wiadomości email jako [email protected] ze skrzynki [email protected] skończy się niepowodzeniem).

3. Moduł tłumaczeń PL

Zajmijmy się teraz przetłumaczeniem sklepu na język polski. Oczywiście wprowadzane treści możemy wprowadzać w odpowiednim języku, ale napisy typu “koszyk” w szablonie obecnie są w języku angielskim (czyli “cart”). Podobnie jak z SMTP wychodzą gotowe moduły z tłumaczeniami.



Przy okazji pokażę jak można instalować moduły przy pomocy narzędzia composer (wiele modułów można instalować w ten sposób, również te, które pokazywałem wcześniej). Najpierw musimy zainstalować samo narzędzie. Przechodzimy w konsoli poleceń na serwerze do folderu z magento i wykonujemy komendy: php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"

php -r "if (hash _ file('SHA384', 'composer-setup.php') ===

'544e09ee996cdf60ece3804abc52599c22b1f40f4323403c44d44fdfdd586475

ca9813a858088ffbc1f233e9b180f061') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php');

} echo PHP _ EOL;"

php composer-setup.php

php -r "unlink('composer-setup.php');"



OK. Composer zainstalowany, teraz w celu instalacji modułu do tłumaczeń musimy wywołać polecenie



php composer.phar require snowdog/language-pl _ pl



ale uwaga, za pierwszym razem będzie trochę więcej konfiguracji.



Musimy przejść do na stronę: https://account.magento.com/applications/ customer/login/



Zalogować się (lub utworzyć konto jeżeli jeszcze nie mamy). Następnie przechodzimy do strony: https://marketplace.magento.com/customer/ accessKeys/ i tam musimy wygenerować sobie dostęp do repozytorium magento (co to jest i jak to rozumieć nie jest przedmiotem naszych rozważań w tym momencie :)).



Klikamy “Create New Access Key” i podajemy nazwę nowego zestawu kluczy dostępowych. Nowy zestaw kluczy pojawi się nam na liście.



Odpalamy komendę:



php composer.phar require snowdog/language-pl _ pl



i podajemy Public Key jako username

Authentication required (repo.magento.com):

Username: 24f***********************************17

oraz Private Key jak password. Password:

Do you want to store credentials for repo.magento.com in /

root/.composer/auth.json ? [Yn] Y

Using version ^0.7.0 for snowdog/language-pl _ pl ./composer.json has been updated

Loading composer repositories with package information Updating dependencies (including require-dev)

Package operations: 1 install, 0 updates, 0 removals

- Installing snowdog/language-pl _ pl (0.7.0): Downloading(100%) Writing lock file

Generating autoload files

Jak cały proces się zakończy to wykonujemy jeszcze 2 komendy: php bin/magento setup:static-content:deploy pl _ PL php bin/magento cache:flush

i powinniśmy widzieć efekty spolszczenia naszego sklepu od strony klienta.

Elementy takie jak “Zaloguj się”, “Utwórz konto”, “Mój koszyk” czy “Szukaj w sklepie…” są przetłumaczone. Nie przejmujmy się, że nie zostało przetłumaczone “Get free Shipping…”. To jest wiadomość edytowalna w panelu administracyjnym, więc możemy ją zmienić sami.

4. Moduł Tag Manager + ustawienie Analitycs.

Każdy sklep wymaga monitorowania skuteczności. Jednym z narzędzi jest Google Analytics. Zobaczymy jak dodać naszą witrynę do Analytics, wykorzystamy do tego Google Tag Manager.



Umiemy już instalować moduły przez composera dlatego wykonujemy

polecenia: php composer.phar require yireo/magento2-googletagmanager2 php bin/magento module:enable Yireo _ GoogleTagManager2 php bin/magento setup:upgrade

i mamy zainstalowany moduł Tag Manager do Magento2. Przyjemniej z composera niż poprzez kopiowanie - na pewno. Teraz musimy założyć konto tag managera i dodać tam kod Google Analytics (zakładam, że jesteś już zarejestrowany i zalogowany na konto Google). Przechodzimy do strony https://tagmanager.google.com/ i klikamy “Utwórz konto”. Wypełniamy dane (tutaj dobrze podać nazwę firmy lub jakiś inny

identyfikator danego konta). i podajemy dane dotyczące witryny, na którą umieścimy tag z Google

Tag Manager. Następnie przechodzimy na “Obszar roboczy” (w nagłówku po lewej stronie) i klikamy “Dodaj nowy tag”. Uzupełniamy niezbędne dane do dodania Google Analytics (więcej na ten temat możesz znaleźć tutaj: https://support.google.com/analytics/answer/6163791?hl=en). Przechodzimy do panelu administracyjnego magento, do konfiguracji Stores -> Configuration -> Sales -> Yireo GoogleTagManager

i wpisujemy kod naszego tagu w Google Tag Manager (zazwyczaj w formacie GTM- XXXXXX- widoczny jest na górnym pasku w konsoli Google Tag Manager).

5. Konfiguracja podstawowych parametrów sklepu

Zacznijmy od ustawienia parametrów takich jak nazwa sklepu czy dane kontaktowe. Na potrzeby tego opracowania przyjmiemy, że nazwa naszego sklepu to Mage2Sell (tak żeby trochę spinało się z domeną.

Przejdźmy do panelu administracyjnego, do Content -> Design -> Configuration i wybierzmy Global (będziemy zmieniać ustawienia

domyślne dla wszystkich widoków sklepu - u nas jest na razie tylko jeden). Wcześniej już wybieraliśmy tutaj template, którego używamy. Teraz przejdźmy do sekcji HTML Head. Ustawiamy tam kolejno faviconę, domyślny tytuł sklepu, przedrostek oraz suffix tytułu (domyślny tytuł będzie zastąpiony przez np. informację o produkcie, ale przedrostek i suffix będą zawsze doklejane). W sekcji Header ustawiamy logo, wiadomość powitalną oraz alternatywny tekst dla obrazka z logiem sklepu. W sekcji Footer możemy wpisać tekst, jaki widzimy a samym dole

naszego przykładowego szablonu. Zauważmy, że w tym miejscu nie jest definiowana stopka - zawiera się ona w osobnym bloku.

Uzupełniamy jeszcze dane w zakładce Transactional emails (dotyczą one wiadomości wychodzących ze sklepu). Zapisujemy konfigurację. Przejdźmy teraz do Stores -> Configuration -> General -> General. Wybierzmy domyślny kraj: Poland (odznaczamy “Use system value” oznacza to mniej więcej resetuj do ustawień początkowych). Zaznaczmy do których krajów chcemy móc wybierać dostawę (ja wybiorę Polskę i Niemcy). Zaznaczamy w “Top destinations” Poland , żeby wyżej pokazywała nam się Polska jako główny kraj. W “State options” możemy zdecydować czy województwo (czy land w przypadku Niemiec) będzie

wymagany oraz czy w ogóle się pokaże do wyboru, jeżeli nie jest wymagany. W sekcji Locale wybieramy język i strefę czasową, zaznaczamy domyślnie kilogramy jako jednostkę masy oraz wybieramy poniedziałek jako pierwszy dzień tygodnia. W sekcji Store information wstawiamy dane firmy (niektóre elementy

powtarzają się z poprzedniej konfiguracji, ale w rzeczywistości są to dane wprowadzane w zupełnie innym kontekście. Przechodzimy teraz do zakładki Stores -> Configuration -> General

-> Currency Setup i wybieramy domyślną oraz dostępne waluty

(powiedzmy PLN i EUR). Dalej w zakładce Store Email Addresses ustawiamy kilka adresów e-mail, jakie będziemy wykorzystywać w komunikacji pocztą elektroniczną. Pamiętaj, że wpisany tutaj adres musi być obsługiwany przez skrzynkę pocztową (np. Gmail będzie pozwalał na wysyłanie

wiadomości tylko z takim nadawcą, jaki jest email skonfigurowany w module SMTP). Na pewno chcemy naszym klientom umożliwić kontakt z nami. W tym celu w zakładce Contacts ustawiamy informacje o e-mailach wysyłanych z formularza kontaktowego.

6. Konfiguracja podatków Konfiguracja podatków (szczególnie na kilka krajów) może stwarzać kilka problemów. Przejdźmy przez cały proces. Załóżmy, że w naszym sklepie będą tylko produkty sprzedawane ze stawką 23% VAT, natomiast mogą one być także sprzedane bez podatku, jeżeli mamy klienta z Niemiec, który będzie miał zwalidowany numer VAT ID w systemie VIES. Zacznijmy od klas podatku (czyli czegoś, co przypiszemy do produktu, co będzie mówiło jaki podatek zastosować dla danego produktu). Przejdźmy do Stores -> Tax Rules -> Add New Tax Rule. Rozwińmy Additional Settings i tam widzimy 1 gotową klasę podatku dla produktu “Taxable Goods”. Zmieńmy ją dla większej czytelności na VAT 23%.

Powyżej mamy klasy podatku klienta. Dodajmy nową klasę podatku klienta “bez VAT” oraz zmieńmy nazwę tej, która już była dodana na “z VAT”. Po naszych operacjach będziemy widzieli coś takiego:

Wróćmy do listy reguł podatku i usuńmy te, które istnieją (wchodzimy w regułę i “Delete Rule”). Przejdźmy teraz do stawek podatku - Stores -> Tax Zones and Rates. Usuwamy stare stawki (podobnie jak z regułami). Dodajemy teraz nowe stawki podatku. Potrzebujemy 3 stawki: 23% do Polski, 23% do Niemiec zgodnie z poniższymi zrzutami: Mamy nasze 3 stawki podatku:

Po dodaniu stawek podatku możemy skonfigurować reguły podatku.

Przejdźmy do listy reguł i dodajmy 2 reguły, jedną dla standardowej stawki 23% oraz jedną dla podatku 0% w Unii Europejskiej. Szczegóły na zrzutach poniżej: I nasze 2 reguły podatku:

Wspaniale, podatki mamy już skonfigurowane. Klienci, którzy będą

należeć do klasy bez VAT i będą zamawiać do Niemiec będą mieli towary bez podatku. Pozostali będą mieli doliczone 23% podatku VAT.

9. Konfiguracja dostaw.

Przechodzimy do ustawień dostawy Stores -> Configuration -> Sales -> Shipping Settings. Ustawiamy kraj wysyłki, czyli Poland

i możemy podać także pozostałe informacje (ale nie ma to takiego znaczenia jak ustawienie kraju). Będziemy chcieli udostępnić klientom darmową dostawę po przekroczeniu 200 zł kwoty zamówienia. W tym celu należy skonfigurować opcję Free Shipping jak na screenie.

Standardową dostawą będzie kurier, który będzie kosztował zawsze

15 zł. Wybieramy w tym celu Flat Rate. Gdybyśmy chcieli różnicować ceny dostawy za dostawę dla różnych krajów należałoby wybrać Table Rate zamiast Flat Rate. Poniżej parametry dostawy:

8. Konfiguracja promocji.



Tym co nakręca sprzedaż na sklepie są często promocje. Do wyboru mamy 2 rodzaje promocji: katalogową oraz koszykową. Promocje katalogowe to promocje na konkretny produkt lub grupę produktów. Wtedy w koszyku widzimy ten produkt jakby był po prostu tańszy. Promocje koszykowe pozwalają na ustalanie bardziej zaawansowanych reguł promocji. Np. możemy ustawić promocje 10% w przypadku gdy mamy powyżej 10 sztuk jakiegoś produktu w koszyku albo jeżeli mamy w koszyku na raz 2 wskazane produktu. Promocje koszyka mogą być aktywowane automatycznie lub kodem rabatowym (zarówno pojedynczym, jak i grupowym). Skupmy się na dodaniu promocji koszyka, która obniży koszt koszyka o 20% w październiku klientom, którzy mają kod promocyjny i wartość koszyka przekroczyła 200 zł. Każdy kod będzie mógł być użyty tylko 1 raz. Przechodzimy do Marketing -> Cart Price Rules i klikamy Add New Rule. Podajemy nazwę reguły “20% w październiku” i opcjonalnie

dodajemy opis (opis i nazwa reguły będzie widoczna tylko dla administratora, dla klientów będziemy ustawiać nazwę wyświetlaną nieco później). Zaznaczamy, na których witrynach będzie dostępna (u nas jest po prostu jedna - “Main Website”). Wyszczególniamy grupy klientów, które będą mogły skorzystać z promocji (u nas bez ograniczeń). Wybieramy opcję Specific Coupon i zaznaczamy żeby kody były generowane. Każdy kod będzie mógł zostać użyty tylko jeden raz. Bez ograniczeń na klienta (klient z 2 kuponami będzie mógł skorzystać

z promocji 2 razy bez przeszkód). Zaznaczamy datę od i datę do okresu obowiązywania promocji. Dzięki temu nie musimy pamiętać o włączeniu 1 października i wyłączeniu promocji 1 listopada. W sekcji Conditions dodajemy 1 warunek i wybieramy “Subtotal” (czyli wartość produktów w koszyku) jest równe lub większe niż 200 zł. W sekcji Actions wybieramy “Percent of product price discount” i ustawiamy wartość na 20 (czyli 20% zniżki). Dodajemy także nazwę promocji widoczną dla klientów sklepu w sekcji Labels. Szczegóły na screenie: Zapisujemy promocję przez Save and Continue Edit i przechodzimy do sekcji Manage Coupon Codes (na samym dole). Wypełniamy

formularz zgodnie ze screenem (oczywiście parametry możemy dostosować) i klikamy Generate. Kody muszą być w miarę krótkie (szczególnie jeżeli będą drukowane i rozdawane), ale nie za krótkie żeby nie można było spróbować i

ch odgadnąć. Do każdego kodu możemy dokleić prefiks i sufiks. Po wygenerowaniu kodów widzimy ich listę w tabelce poniżej formularza ich generowania. Kody możemy wyeksportować w celu dalszej akcji marketingowej (żeby klienci mogli użyć ich na koszyku musimy je przecież im dostarczyć.

Część 5

Migracja Magento1 do Magento2 Standardowy wygląd Magento2 (template Luma) nie jest brzydki, jest responsywny - ogólnie moglibyśmy go używać. Standardowy szablon Magento wg mnie to kiepski pomysł i musimy wybrać jakiś szablon, który będzie nam się podobał i będzie “na czasie”. Ja wybrałem akurat darmowy szablon FreeGo.

Migracja Magento1 do Magento2

Migracja rozszerzeń

W przypadku modułów zakupionych od renomowanych dostawców prawdopodobnie już w tym momencie dostępne są odpowiedniki starych modułów do nowej wersji Magento. Niektórzy z dostawców w ramach wykupionego wcześniej okresu wsparcia modułów do Magento1 oferują nawet możliwość bezpłatnego pobrania modułu w wersji dla Magento2. Jeżeli nie ma naszego modułu od danego dostawcy dla nowej wersji Magento w danym momencie warto znaleźć road mapę, która powie nam czy przypadkiem nie jesteśmy tuż przed udostępnieniem modułu. Warto też spróbować dojść do porozumienia z dostawcą - jest duża szansa, że 1 zainteresowany na poważnie klient będzie wystarczającym bodźcem do napisania modułu przez dostawcę i opublikowania go.

Migracja Magento1 do Magento2

Migracja elementów dostosowania logiki biznesowej

W przypadku modułów dedykowanych do sklepu niezbędne będzie zaadaptowanie (czyt. napisanie drugiego modułu na bazie poprzedniej logiki) do Magento2. Są na rynku dostępne migratory do modułów, ale trzeba do nich podchodzić z dużą dozą ostrożności i w przypadku użycia takiego narzędzia położyć większy nacisk na testy systemu.

Migracja Magento1 do Magento2

Migracja danych

Migracja danych, o ile nie modyfikowaliśmy w znacznym stopniu bazy danych powinna nam przyjść najłatwiej ze wszystkich migracji. Cały proces został właściwie zautomatyzowany, a narzędzia do jego przeprowadzenia są darmowe. Uwaga: zanim przystąpimy do procesu migracji danych powinniśmy mieć zainstalowane odpowiedniki naszych modułów Cały proces składa się z kilku elementów: • przeniesienie ustawień, konfiguracji i witryn • przeniesienie plików (media) • przeniesienie danych

1. Instalacja Data Migration Tool Przechodzimy do folderu z nasza instalacją magento na ssh. Sprawdzamy wersję Magento poleceniem php bin/magento --version

U mnie otrzymałem output: Magento CLI version 2.1.7

Czyli mam Magento w wersji 2.1.7. Uruchamiamy teraz pobieranie Data Migration Tool przez composer. php composer.phar require magento/data-migration-tool:2.1.7

Po zainstalowaniu Data Migration Tool musimy skonfigurować kilka ustawień. Przechodzimy do katalogu vendor/magento/data-migration-tool/etc/ce-to-ce/. Wybieramy

wersję Magento 1, z której będziemy migrować. U mnie jest to 1.9.2.4. Kopiujemy plik (nic nie stoi na przeszkodzie żeby zmieniać plik .dist, ale bardziej elegancko będzie pracować na pliku konfiguracyjnym poza repozytorium): cp config.xml.dist config.xml

Odnajdujemy sekcje







magento1

f3e25abe619dae2387df9fs594f01985



i uzupełniamy odpowiednimi danymi (soruce _ prefix tylko jeżeli był używany w Magento 1, crypt _ key znajdziemy w pliku

konfiguracyjnym w ścieżce app/etc/local.xml).

2. Przeniesienie ustawień, konfiguracji i witryn Zacznijmy naszą migrację od przeniesienia ustawień i konfiguracji. Możemy to wykonać przy pomocy komendy: php bin/magento migrate:settings migrate:settings vendor/ magento/data-migration-tool/etc/ce-to-ce/1.9.2.4/config.xml

Migrację danych rozpoczynamy komendą: php bin/magento migrate:data vendor/magento/data-migrationtool/etc/ce-to-ce/1.9.2.4/config.xml

Następnie potrzebujemy przekopiować zawartość folderu /media w magento1 do folderu /pub/media magento 2.

Migracja Magento1 do Magento2

Migracja szablonu

Niestety, w zakresie szablonów nastąpiła tak duża zmiana w stosunku do poprzedniej wersji Magento, że nie ma jasnej instrukcji odnośnie migracji szablonu z Magento1 do szablonu Magento2.

ZAKOŃCZENIE Po wykonaniu wszystkich migracji należy ze szczególną uwagą przetestować naszą nową witrynę. Przy takich proces najbardziej biznes dostrzega wartość testów automatycznych, które powinny nam wskazać miejsca, którym należy poświęcić więcej uwagi. Być może należy dostosować same testy, być może jednak wykryły one nieprawidłowości w funkcjonowaniu witryny, które należy wyeliminować. Szczegółowy opis przedstawionych narzędzi można znaleźć pod adresem: http://devdocs.magento.com/guides/v2.0/migration/ bk-migration-guide.html Pomimo krótkiej formy naszej publikacji wierzymy, że przekonaliśmy Cię do głębszych przemyśleń nad wdrożeniem platformy Magento2 w Twojej firmie. Jeżeli zgadzasz się z poprzednim zdaniem, to przed Tobą wiele pracy. Rozpoczynając od stworzenia własnej koncepcji, poprzez realizację, ostatecznie kończąc na wdrożeniu. Nic bardziej przyjemnego, gdy po zakończeniu prac Twoja firma osiągnie lepsze wyniki, praca nad zleceniami będzie łatwiejsza i przyjemniejsza a ograniczenia, które stawiały inne systemy przestaną istnieć.

X-Coding IT Studio

[email protected] ul. Czysta 4 50-013 Wrocław Poland

665 442 183 x-coding.pl sellbetter.pl

Marek Kich CEO

Maciej Harbuz CTO

Konrad Kryłowicz Marketing Manager

Małgorzata Pieczenko-Kruszyńska Creative Director

Eksperci w tym wydaniu