E-commerce Tools (Fundamentals of Magento Development) | |
---|---|
Termin zajÄÄ: |
|
Rodzaj zajÄÄ: |
|
Warunek zaliczenia wykĹadu: |
|
Warunek zaliczenia ÄwiczeĹ: |
|
Ocena wykĹad: |
|
Ocena Äwiczenia: |
|
Classes
- Lesson 1 () (22.05.2015, 13:45-)
Zadania na zajÄcia:- Przydatne narzÄdzia:
- Zainstaluj serwer Apache, PHP5, mysql (zostaniesz zapytany o haslo do mysql - zapamietaj je):
root@debian1:~# apt-get install apache2 php5 mysql-server php5-mysql php5-curl php5-gd php-pear
root@debian1:~# vi /etc/apache2/sites-available/100-magento.local.conf
Do tego pliku wpisz:<VirtualHost *:80> ServerAdmin kalkos@domena.pl ServerName magento.local DocumentRoot /var/www/magento.local/public LogLevel warn ErrorLog /var/log/apache2/magento.local.error.log CustomLog /var/log/apache2/magento.local.access.log combined </VirtualHost>
UtwĂłz katalog i ustaw wĹaĹcicielaroot@debian1:~# mkdir -p /var/www/magento.local/public root@debian1:~# chown www-data.www-data -R /var/www/magento.local/ root@debian1:~# a2ensite 100-magento.local.conf Enabling site 100-magento.local. To activate the new configuration, you need to run: service apache2 reload root@debian1:~# /etc/init.d/apache2 reload [ ok ] Reloading apache2 configuration (via systemctl): apache2.service. root@debian1:~# /etc/init.d/apache2 reload
Dopisz do /etc/hosts:127.0.0.1 magento.local
-
Pobierz Magento i plik Sample Data
Uwaga:
Wymagane zaĹoĹźenie konta w Magento. Wybierz wersjÄ 1.9.1 lub nowszÄ z 1.9.x. Plik SAmple data powinien byÄ dobrany do wersji Magento (jest niezbÄdny do zaĹadowania przykĹadowych danych do sklepu). -
PobranÄ
paczkÄ naleĹźy rozpakowaÄ:
root@debian1:/etc/apache2/sites-enabled# cd root@debian1:~# cd /var/www/magento.local/public/ root@debian1:/var/www/magento.local/public# tar zxvf ~kalkos/magento-1.9.1.1.tar-2015-04-30-12-56-57.gz root@debian1:/var/www/magento.local/public# cd magento/ root@debian1:/var/www/magento.local/public/magento# chown www-data.www-data -R ./ root@debian1:/var/www/magento.local/public/magento# ls -al total 724 drwxr-x--- 13 www-data www-data 4096 Apr 29 10:25 . drwxr-xr-x 3 www-data www-data 4096 May 21 23:20 .. -rw-r----- 1 www-data www-data 2812 Apr 28 15:08 api.php drwxr-x--- 6 www-data www-data 4096 Apr 29 09:07 app -rw-r----- 1 www-data www-data 2806 Apr 28 15:08 cron.php -rwxr-x--x 1 www-data www-data 717 Apr 28 13:15 cron.sh drwxr-x--- 7 www-data www-data 4096 Apr 28 13:15 downloader drwxr-x--- 3 www-data www-data 4096 Apr 28 13:15 errors -rw-r----- 1 www-data www-data 1150 Apr 28 13:03 favicon.ico -rw-r----- 1 www-data www-data 5953 Apr 28 15:08 get.php -rw-r----- 1 www-data www-data 5667 Apr 28 13:03 .htaccess -rw-r----- 1 www-data www-data 4568 Apr 28 13:03 .htaccess.sample drwxr-x--- 2 www-data www-data 4096 Apr 28 13:03 includes -rw-r----- 1 www-data www-data 2617 Apr 28 15:08 index.php -rw-r----- 1 www-data www-data 2341 Apr 28 15:08 index.php.sample -rw-r----- 1 www-data www-data 6416 Apr 28 15:08 install.php drwxr-x--- 12 www-data www-data 4096 Apr 28 13:15 js drwxr-x--- 14 www-data www-data 4096 Apr 28 13:15 lib -rw-r----- 1 www-data www-data 10421 Apr 28 13:03 LICENSE_AFL.txt -rw-r----- 1 www-data www-data 10679 Apr 28 13:03 LICENSE.html -rw-r----- 1 www-data www-data 10410 Apr 28 13:03 LICENSE.txt -rwxr-x--x 1 www-data www-data 1319 Apr 28 13:15 mage drwxr-x--- 6 www-data www-data 4096 Apr 28 13:03 media -rw-r----- 1 www-data www-data 886 Apr 28 13:03 php.ini.sample drwxr-x--- 2 www-data www-data 4096 Apr 28 13:15 pkginfo -rw-r----- 1 www-data www-data 585086 Apr 28 13:15 RELEASE_NOTES.txt drwxr-x--- 2 www-data www-data 4096 Apr 28 13:15 shell drwxr-x--- 5 www-data www-data 4096 Apr 28 13:03 skin drwxr-x--- 3 www-data www-data 4096 Apr 29 10:25 var root@debian1:/var/www/magento.local/public/magento#
Instalacja PHPMyAdmin:root@debian1:~# apt-get install phpmyadmin Reading package lists... Done (...)
ZaĹoĹźenie bazy dla magento (uwaga - w produkcyjnych Ĺrodowiskach nie naleĹźy wykorzystywaÄ uĹźytkownika root):root@debian1:~# mysql -u root -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 52 Server version: 5.5.42-1 (Debian) Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql> CREATE DATABASE magento; Query OK, 1 row affected (0.00 sec) mysql> Bye root@debian1:~#
Wgranie przykĹadowych danych:root@debian1:~# gunzip magento-sample-data-1.9.1.0.tar-2015-02-11-08-18-26.gz root@debian1:~# tar xvf ./magento-sample-data-1.9.1.0.tar-2015-02-11-08-18-26 root@debian1:/home/kalkos# mysql -u root -p magento < magento-sample-data-1.9.1.0/magento_sample_data_for_1.9.1.0.sql Enter password: root@debian1:~# (cd ./magento-sample-data-1.9.1.0; tar cvf - ./skin ./media ) | ( cd /var/www/magento.local/public/magento/; tar xv) root@debian1:~# cd /var/www root@debian1:/var/www# chown www-data.www-data ./magento.local/ -R root@debian1:/var/www#
OD teraz mozna testowac: http://magento.local- locale ustaw na Polski, kliknij Continue
- Podaj lokalizacje bazy (uzytkownik root, zapamietane haslo do mysql)
- Podaj swoje dane oraz wskaz dane do logowania
- W ostatnim kroku podajemy statystyczne dane - mozna go pominac lub podac dowolne dane
- Przechodzimy do front-end lub back-end
-
Parametry naszego Magento:
- Adres sklepu: http://magento.local
- Adres panelu admina: http://magento.local
- Nazwa bazy: magento
- Adres IP: 127.0.0.1 lub jeĹli chcemy dostaÄ siÄ spoza VM - sprawdzamy przy pomocy polecenia "ip a", a wpis do pliku hosts naleĹźy wykonaÄ na maszynie z przeglÄ darkÄ www (Dla Windows: C:\Windows\System32\drivers\etc\hosts z uprawnieniami admina)
- Adres phpMyAdmin: http://localhost/phpmyadmin/
-
Dodanie modulu rewrite, w celu poprawnego wyĹwietlania podstron:
root@debian1:/etc/apache2/sites-available# a2enmod rewrite Enabling module rewrite. To activate the new configuration, you need to run: service apache2 restart root@debian1:/etc/apache2/sites-available# /etc/init.d/apache2 reload Reloading apache2 configuration (via systemctl): apache2.service. root@debian1:/etc/apache2/sites-available#
Dodaj do pliku /etc/apache2/sites-available/100-magento.local.conf dodaj informacje o rewrite do katalogu:<VirtualHost *:80> ServerAdmin kalkos@domena.pl ServerName magento.local DocumentRoot /var/www/magento.local/public/ LogLevel warn ErrorLog /var/log/apache2/magento.local.error.log CustomLog /var/log/apache2/magento.local.access.log combined <Directory /var/www/magento.local> Options FollowSymLinks AllowOverride all RewriteEngine On </Directory> </VirtualHost>
i wykonaj restart usĹugi:root@debian1:~# /etc/init.d/apache2 reload Reloading apache2 configuration (via systemctl): apache2.service. root@debian1:~#
- Lesson 2 () (27.05.2015, 16:00)
Zadania na zajÄcia:- Zainstaluj git:
root@debian1:~/# apt-get install git
Instsalacja wiz:root@debian1:~/# git clone https://github.com/classyllama/Wiz.git Cloning into 'Wiz'... remote: Counting objects: 572, done. remote: Total 572 (delta 0), reused 0 (delta 0), pack-reused 572 Receiving objects: 100% (572/572), 187.07 KiB | 121.00 KiB/s, done. Resolving deltas: 100% (249/249), done. Checking connectivity... done. root@debian1:~/# alias wiz=~/Wiz/wiz root@debian1:~# wiz Wiz v0.9.8 Provides a CLI interface to get information from, script, and help you manage your Magento installation. Usage: wiz [global-options]
Dodawanie na staĹe moĹźliwoĹci korzystania z WIZ wraz z autouzupeĹnianiem:[command-options] Runs a command. wiz help Returns help on a command. wiz command-list Returns the list of available commands. Global Options: --batch [csv|pipe|tab] Returns tabular data in a parseable format. Defaults to "csv" --store , --website Executes Magento as this particular store or website. root@debian1:~# export WIZ_MAGE_ROOT=/var/www/magento.local/public/magento/ root@debian1:~# echo "export WIZ_MAGE_ROOT=/var/www/magento.local/public/magento/" >> /root/.bashrc root@debian1:~# echo "alias wiz=~/Wiz/wiz" >> /root/.bashrc root@debian1:~# source /root/Wiz/wiz.bash_completion.sh >> ./.bash_completion
- Od tego momentu moĹźemy korzystaÄ np. z nastÄpujÄ
cych funkcji wiz (mozesz sprawdzic inne przez autouzupeĹnianie lub dokumentacjÄ):
- wiz admin-resetpass
- wiz admin-createadmin
- wiz cache-clear
- wiz module-list
- wiz sql-cli
root@debian1:~# wiz admin-resetpass PHP Notice: Undefined variable: realParams in /root/Wiz/app/plugins/Admin.php on line 157 Notice: Undefined variable: realParams in /root/Wiz/app/plugins/Admin.php on line 157 Login: kalkos New Password: qwerty Password for user "kalkos" has been updated. root@debian1:~#
Konfiguracja theme (przez CPN oznaczmy Current Package Name - nazwa pakietu z Theme):
- Layout znajdujÄ siÄ w $MAGENTO_PATH/app/design/frontend/CPN/layout
- Layout odpowiada za uĹoĹźenie strony - gdzie sÄ bloki i jak wyglÄ dajÄ nagĹĂłwki
- Template znajdujÄ siÄ w $MAGENTO_PATH/app/design/frontend/CPN/template
- Template odpowiada za zawartoĹÄ strony - jaka treĹÄ siÄ pojawia
- SKIN znajdujÄ siÄ w $MAGENTO_PATH/skin/frontend/CPN
- SKIN zawiera pliki statyczne - js, css, media
- W przypadku ustawionego template np. na CPN/jasny, powinien istniec rowniez CPN/default. Dodatkowo zawsze istnieje base/default.
- W tej kolejnosci (podanej w podpunkcie powyzej) Magento szuka plikow odpowiadajÄ cych za wyĹwietlenie konkretnego widoku.
Utworzenie swojego Layout, Template w CPN o nazwie rwd:
- Zainstaluj git:
root@debian1:~# cd /var/www/magento.local/public/magento/app/design/frontend/rwd root@debian1:/var/www/magento.local/public/magento/app/design/frontend/rwd# mkdir test root@debian1:/var/www/magento.local/public/magento/app/design/frontend/rwd# mkdir ./test/template root@debian1:/var/www/magento.local/public/magento/app/design/frontend/rwd# mkdir ./test/template/contacts root@debian1:/var/www/magento.local/public/magento/app/design/frontend/rwd# mkdir ./test/layout/ root@debian1:/var/www/magento.local/public/magento/app/design/frontend/rwd# cp ./default/layout/contacts.xml ./test/layout/ root@debian1:/var/www/magento.local/public/magento/app/design/frontend/rwd# cp ./default/template/contacts/form.phtml ./test/template/contacts/ root@debian1:/var/www/magento.local/public/magento/app/design/frontend/rwd# chown www-data.www-data ./test -RUtworzenie swojego skin w CPN o nazwie RWD:
root@debian1:~# cd /var/www/magento.local/public/magento/skin/frontend/rwd root@debian1:/var/www/magento.local/public/magento/skin/frontend/rwd# mkdir test root@debian1:/var/www/magento.local/public/magento/skin/frontend/rwd# mkdir test/images root@debian1:/var/www/magento.local/public/magento/skin/frontend/rwd# mkdir test/css root@debian1:/var/www/magento.local/public/magento/skin/frontend/rwd# cp ./default/css/styles.css ./test/css/ root@debian1:/var/www/magento.local/public/magento/skin/frontend/rwd# root@debian1:/var/www/magento.local/public/magento/skin/frontend/rwd# chown www-data.www-data /var/www/magento.local/public/magento/skin/frontend/rwd/test/ -R root@debian1:/var/www/magento.local/public/magento/skin/frontend/rwd#Uwagi:
- TworzÄ c odpowiednia layout, template w podkataltu app/design/frontend/rwd/test/ moĹźemy modyfikowaÄ wyglÄ dy tych stron najpierw kopiujÄ c pliki z rwd/default a nastÄnie je modyfikujÄ c.
- Wszystkie pliki i katalogi muszÄ naleĹźeÄ do uĹźytkownika www-data
- Po kaĹźdej modyfikacji plikĂłw konieczne jest wykonanie polecenia wiz cache-clear
- Zainstaluj wiz (dla osĂłb znajÄ cych narzÄdzie magerun - ono teĹź jest OK)
- ZmieĹ nagĹĂłwki na stronie Contact US - pole title w head (modyfikacja contacts.xml w layout)
- ZmieĹ opsiy poszczegĂłlnych pĂłl w formularzzu kontaktowym.
- ZmieĹ wielkoĹÄ czcionki w formularzu kontaktowym.
Zadania na zajÄcia:
- Zmiany konfiguracji
- katalogu produktĂłw dokonuje siÄ w sekcji Configuration-System-Catalog
- Grup atrybutĂłw dokonuje siÄ w sekcji Catalog-Attribets-(Manage Atributes lub Manage Atribute Sets)
- Parametry nowego atrybutu:
- Attribute code - kod wykorzystywany w bazaie
- Scope - zasiÄg dostÄpnoĹÄ, np. dla konkretnego widoku sklepu (Magento moĹźe mieÄ wiele widokĂłw sklepu)
- Cataloge Input Type - typ atrybutu
- Default Value - domyĹlna wartoĹÄ
- Unique Value - czy wartoĹÄ musi byÄ unikalna
- Values Required - czy wartoĹ jest wymagana
- Input validation for Store Owner - czy ma byÄ walidacja wejĹcia podczas wprowadzania danych
- Apply To - ktĂłrych produktĂłw dotyczy
- Allow HTML Tags on Frontend - czy moĹźna korzystaÄ z HTML w zawartoĹci atrybutu
- Use in Quick Search - w przypadku szybkiego wyszukiwania - czy przeszukiwaÄ ten atrybut
- Use in Advanced Search - jak wyĹźej, tylko dla zaawansowanego wyszukiwania
- Comparable on Front End - czy ma byÄ dostÄpne w porĂłwnaniu produktĂłw
- Use for Promo Rule Conditions - czy filtrowaÄ po tym parametrze przy definiowaniu promocji
- Postition - kolejnoĹÄ atrybutu
- Visible on Produt View Page on Front-end - czy atrybut ma byÄ widoczny na stronie produktu
- Use on Product LIsting - widocznoĹÄ na stronie kategorii
- Used for sorting in PRoduct Listing - moĹźliwoĹÄ sortowania w widoku kategorii po tym atrybucie
- Produkt:
- SKU - identyfikator produktu uĹźywany przez system do jednoznacznej identyfikacji
- Parametry katalogu:
- Ustaw wyĹwietlanie opcji 10, 20, 50, 100 szt. produktĂłw na liĹcie, a domyĹlnie 20
- UStaw domyĹlne sortowanie po cenie
- WyĹÄ cz powiadomienia o zmianie porduktu, ale wĹÄ cz o zmianie stanu magazynowego
- Dodaj nowy rodzaj atrybutu - wg swojego pomyslu
- Dodaj nowÄ grupÄ atrybutĂłw - kursy e-learinig, przypisz do niej pasujÄ ce wg Ciebie atrybuty
- Dodaj nowÄ kategoriÄ produktĂłw - kursy e-learning
- UtwĂłrz 3 produkty w tej kategorii, jeden typu configurable (uwaga: product typu configurable umoĹźliwia tworzenie podproduktĂłw bÄdÄ cych wariantem produktu wyjĹciowego) i dwa bÄdÄ ce jego wariantami
Tworzenie moduĹĂłw: MagentoModules (by Arkadiusz Talarczyk)
Optymalizacja dziaĹania:
- Zainstaluj paczki memcached, php5-memcached, varnish.
- Memcached:
- W pliku app/etc/local.xml dodaj wpisy o memcached (sprawdĹş co dodaÄ), a nastÄpnie zrestartuj usĹugÄ apache.
- SprawdĹş czy strony siÄ szybciej ĹadujÄ przy wiÄkszym obciÄ Ĺźeniu (dla chÄtnych - narzÄdzie o nazwie "ab" - dostÄpne po zainstalowaniu apache, rozsrzeenie "Page load time" do Chrome)
- Varnish:
- Dodaj nowy adres IP do serwera magento (w obecnej podsieci - w VMWarePlayer prowadzÄ
cego podsiec to 192.168.48.0/24 - sprawdz swoja polecenie ip a s), ale inny niĹź ten na ktorym sĹucha magento (w przykladzie prowadzÄ
cego apache z magento sĹucha na 192.168.48.130:80):
ip a a 192.168.48.150/24 dev eth0
- W /etc/apache2/ports.conf ustaw nasĹuchiwanie zamiast na porcie 80, na 192.168.48.130:80. Podobnie popraw pliki 000-default.conf i 100-magento.local.conf, tak by wpisy <VirtualHost 192.168.48.130:80> zamiast <VirtualHost *:80>
- JeĹli TwĂłj linux wykorzystuje systemd, Wykonaj:
cp /lib/systemd/system/varnish.service /etc/systemd/system/
a nastÄpnie w /etc/systemd/system/varnish.service zmieĹ parametr "-a" tak by zawieraĹ 192.168.48.150:80 (lub inny IP z Twojej podsieci).
W przeciwnym przypadku (jeĹli TwĂłj linux korzysta z init.d) zmieĹ plik /etc/default/varnish tak by zawieraĹ (oczywiĹcie 192.168.48.150 naleĹźy zamieniÄ na swoje IP):DAEMON_OPTS="-a 192.168.48.150:80 \ -T localhost:6082 \ -f /etc/varnish/default.vcl \ -S /etc/varnish/secret \ -s malloc,256m"
- Uruchom ponownie usĹugÄ apache
service apache2 restart
- Uruchom ponownie usĹugÄ varnish
systemctl daemon-reload (dla systemd) systemctl restart varnish.service (dla systemd) /etc/init.d/varnish restart (dla init.d)
- Zmodyfikuj /etc/varnish/default.vcl tak by zawieraĹ:
backend default { .host = "192.168.48.130"; .port = "80"; } sub vcl_recv { if (req.url ~ "\.(png|gif|jpg)$") { unset req.http.cookie; } }
- Uruchom ponownie usĹugÄ varnish
systemctl daemon-reload (dla systemd) systemctl restart varnish.service (dla systemd) /etc/init.d/varnish restart (dla init.d)
- ZmieĹ plik /etc/hosts (na windows C:\Windows\System32\drivers\etc\hosts.txt) tak by magento.local wskazywaĹo na nowe adresy IP (w przykĹÄ dzie powyĹźej 192.168.48.150)
- WejdĹş na http://magento.local
- Dla chÄtnych: sprawdĹş czy strony siÄ szybciej ĹadujÄ przy wiÄkszym obciÄ Ĺźeniu (narzÄdzie o nazwie "ab" - dostÄpne po zainstalowaniu apache, rozsrzeenie "Page load time" do Chrome)
- Dodaj nowy adres IP do serwera magento (w obecnej podsieci - w VMWarePlayer prowadzÄ
cego podsiec to 192.168.48.0/24 - sprawdz swoja polecenie ip a s), ale inny niĹź ten na ktorym sĹucha magento (w przykladzie prowadzÄ
cego apache z magento sĹucha na 192.168.48.130:80):
Lectures - eCommerce Multitool, by Jakub Wojtakajtis (PayU):
- 22.05.2015 (piÄ tek), 16.00 - 19.00 (4 godz) - sala A2-24
- 29.05.2015 (piÄ tek), 16.00 - 19.00 (4 godz) - sala A2-24
- 30.05.2015 (sobota), 09.00 - 14.00 (6 godz) - sala A2-19
- 12.06.2015 (piÄ tek), 16.00 - 19.00 (4 godz) - sala A2-24
- 13.06.2015 (sobota), 09.00 - 14.00 (6 godz) - sala A2-21(3 godz) i Aula B (3 godz)
Plan:
- WykĹad otwierajĹĄcy cykl: "eCommerce - morze moĹźliwoĹci" - 2h
- Metodyki zarzĹĄdzania projektami: SCRUM vs. PMI - 4h
- NarzÄdzia psychometryczne w zarzĹĄdzaniu potencjaĹem zespoĹu: MBTI - 4h
- Architektura satysfakcji i przyjemnoĹci: Metodyki UX - 4h
- Survival w Internecie: SEO/SEM - 4h
- Destylacja wiedzy: Data Science - 4h
Classes - Magento Development, by Maciej Kalkowski (WMI, UAM):
- 22.05.2015 (piÄ tek), 13:45 - 16.00 (3 godz) - sala A1-16,17
- 27.05.2015 (Ĺroda), 17:00-18:30 (2 godz) - sala A1-16,17
- 29.05.2015 (piÄ tek), 13:45 - 16.00 (3 godz) - sala A1-16,17
- 03.06.2015 (Ĺroda), 17:00-18:30 (2 godz) - sala A1-16,17
- 08.06.2015 (poniedziaĹek), 15:30-17:45 (3 godz) - sala A1-16,17
Plan i wymagania:
-
Zainstalowanie VM i Ĺrodowisk deweloperskich.
Wymagania:- Zaisntalowanie maszyny wirtualnej
- Zainstalowanie serwera www, obsĹugi php, bazy danych.
- Konfiguracja Ĺrodowiska - domena, IP
- Zainstalowanie Magento
- Uruchomienie Magento
-
Dostosowywanie dziaĹania Ĺrodowiska.
Wymagania - konfiguracja theme:- Modyfikacja skin
- Modyfikacja template
- NarzÄdzie Wiz
-
ZarzÄ
zdanie produktami:
- Tworzenie katalogĂłw i atrybutĂłw do produktĂłw
- Dodatkowe opcje - dodawanie kodu facebook like i linkĂłw do materiaĹĂłw wideo
-
ModuĹy:
- Tworzenie moduĹu
- Tworzenie wersji jÄzykowych