Magento
Upcoming SlideShare
Loading in...5
×

Like this? Share it with your network

Share

Magento

  • 527 views
Uploaded on

Magento összefoglaló a 2014.01.28-ai PHP Meetup (Budapest) keretében. A Magento az eBay tulajdonában lévő robosztus eCommerce platform. A prezentációban áttekintést kapsz a rendszer alapjairól.

Magento összefoglaló a 2014.01.28-ai PHP Meetup (Budapest) keretében. A Magento az eBay tulajdonában lévő robosztus eCommerce platform. A prezentációban áttekintést kapsz a rendszer alapjairól.

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
527
On Slideshare
527
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
4
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Magento Kromesch Sándor 2014.01.28.
  • 2. Áttekintés
  • 3. Mi az a Magento “The most flexible enterprise-class eCommerce platform to power your business” (http://magento.com/)
  • 4. Mi az a Magento Minden negyedik online üzlet a Megentot választja 5 million + Downloads $25 billió+ dollár értékű tranzakció minden évben eBay tulajdona
  • 5. Featurek MARKETING PROMÓCIÓK ÉS ESZKÖZÖK ● Rugalmas kuponrendszer (árazási szabályok) felhasználói csoport-, időperiódus-, termék-, és kategóriakorlátozásokkal. ● Katalógus promóciók - kedvezmény szabályok beállítása termékekre, kategóriákra ● Kosár promóciók - kedvezmény szabályok beállítása a kosár tartalma alapján KERESŐ OPTIMALIZÁLÁS (SEO) ● Google Site map generálás ● Beszédes URL-ek - teljes kontroll ● Állítható meta adatok termékenként és kategóriánként KATALÓGUS MENEDZSMENT ● Tömeges importálás/exportálás/frissítés ● Összecsomagolt, virtuális és letölthető termékek ● Vásárló által perszonalizált termékek (monogram stb.) FELHASZNÁLÓI HOZZÁFÉRÉS ● Újrarendelés indítása ● Kívánságlista megjegyzésekkel ● Áttekintő riport a hozzáféréshez ● Megrendelések állapota és korábbi megrendelések listája
  • 6. Featurek STATISZTIKÁK ÉS RIPORTOK ● Összefoglaló riport az adminisztrációs felület nyitóoldalán ● Legtöbbet látogatott és leggyakrabban vásárolt terméklisták ● Vásárlói toplisták a megrendelések száma és a költések alapján HÍRLEVÉL ● Egyedi megjelenésű levelek ● Időzített kiküldés ● Tömeges kiküldés TERMÉK OLDAL ● Termékenként több kép ● Felhasználói vélemények ● Hasonló termékek SZÁLLÍTÁS ● Szállítás több címre egy megrendelés keretében ● Többszöri kiszállítás egy megrendelés keretében ● Ingyenes szállítás, Sávos szállítási díjak
  • 7. Featurek RENDELÉS MENEDZSMENT ● Rendelések indítása, módosítása és törlése az adminisztrációs felületről ● Újrarendelések indítása az adminisztrációs felületről ● Email értesítések a rendelésekről OLDAL MENEDZSMENT ● 100%-ig testre szabható megjelenés template-ek segítségével ● Tartalom menedzsment a belső oldalakra ● Web Service API, amelynek segítségével könnyen összeköthető külső rendszerekkel KATALÓGUS OLDAL ● Párhuzamos kategóriák kezelése (egy termék több kategóriában is lehet) ● Termék összehasonlítás ● Hasonló termékek VÁSÁRLÁSI FOLYAMAT ● Belépés nélküli vásárlás indítása ● Cím megadása a korábban megadott címekből ● Egy oldalas vásárlás
  • 8. Featurek FIZETÉS ● Több fizetési mód támogatása ● Vásárlás utánvéttel ● Bankkártyás fizetési modul integrálásának lehetősége ● Nemzetközi online fizetési rendszerek támogatása
  • 9. Története ● Varien kezdi fejleszteni Bento néven 2007 elején, mert nem elégedett az osCommerce-el ● 2007 Augusztus az első publikus béta ● 2010 eBay 49% ● 2011 Június eBay 100% ● 2013 November a világ websitejainak 0,9% Magento (W3Techs becslés) ● A top eCommerce site-ok több mint 20% használja
  • 10. Elérhető változatok 1. Community edition ○ Free 2. Enterprise edition ○ Fizetős 3. Magento GO ○ SaaS
  • 11. Elérhető változatok Community Enterprise GO Ár Free 15.550$ - 49.990$ / év 15$-125$ hónap Célcsoport Fejlesztők > 50M$, > 50.000 Uniq. Vis. /hó Mid-large business < 15M$ online, < 25.000 Uniq. Vis. / hó Small business SKU < 10.000 Support Nincs Van A csomagtól függ B2C Van Van Van B2B Nincs / 3rd party plugin Van Korlátozott
  • 12. Őkoszisztéma ● Magento Connect ○ Piactér (http://www.magentocommerce.com/magento-connect/) ○ Free és fizetős pluginek, themek ● Themeforest - templatek ○ http://themeforest.net/category/ecommerce/magento ● Egyedi plugin gyártók ○ http://aheadworks.com/
  • 13. Követelmények (hivatalos) OS: ● Linux x86, x86-64 Web Server: ● Apache 1.3.x ● Apache 2.0.x ● Apache 2.2.x ● Nginx (Magento 1.7 Community és 1.12 Enterprise) Támogatott böngészők: ● Microsoft Internet Explorer 7+ ● Mozilla Firefox 3.5+ ● Apple Safari 5+ csak MAC ● Google Chrome 7+ ● Adobe Flash plugin kell MySQL: ● EE 1.13.0.0+: MySQL 5.0.2+ ● EE 1.12.0.2-: MySQL 4.1.20+ ● CE (minden verzió): MySQL 4.1.20+ SSL: ● Ha HTTPS használunk, akkor, SSL certificate-nek validnak kell lennie. Self-signed SSL certificates nem támogatott
  • 14. Követelmények (hivatalos) PHP 5.2.13 - 5.3.24 Kötelező extensionök: ○ PDO_MySQL ○ simplexml ○ mcrypt ○ hash ○ GD ○ DOM ○ iconv ○ curl ○ SOAP (Ha Webservice API használatban van) ● Safe_mode off ● Memory_limit nem kisebb, mint 256Mb (ajánlott 512Mb) Redis NoSQL (opcionális CE 1.8+, EE 1.13+) ● redis-server 2.6.9+ ● phpredis 2.2.2+ Server - hosting - setup: ● Időzített feladatokhoz (crontab) + PHP 5 ● .htaccess file override képesség
  • 15. Felépítése
  • 16. Alap felépítés
  • 17. Könyvtárszerkezet /app - itt van a kód / skin / {area} / {package} / {theme} / - design package assets-einek helye (css, img ..) / lib - libraryk mint a Zend és a Varien / js - JavaScript-ek (extjs, scriptaculous, prototype, tiny_mce) / media - feltöltött fileok (termé képek …) / var - ideiglenes fileok (cache, log, temp, session …) / includes - config.php / app / etc - globális konfiguráció / app / code - modulok helye (kontrollerek, modellek) / app / code / core - alap modulok / app / code / community - comunity (Magento Connect modulok) / app / code / local - egyedi modulok / app / code / core / Mage - Magento alap névtere
  • 18. Könyvtárszerkezet / app / code / core / Mage / {Module} - modul gyölkérkönyvtár / app / code / core / Mage / {Module} / etc - modul konfiguráció / app / code / core / Mage / {Module} / controllers - modul kontrollerek / app / code / core / Mage / {Module} / Block - modul blokkok / app / code / core / Mage / {Module} / Model - modul modellek / app / code / core / Mage / {Module} / Model / Resource - modul erőforrás modellek / app / code / core / Mage / {Module} / sql - sql scriptek a modul install, upgrade-khez / app / code / core / Mage / {Module} / sql / {resource} / - erőforrás model specifikus upgrade-k / app / code / core / Mage / {Module} / sql / {resource} / {type}-{action}-{versions}.(sql|php) erőforrás update file-ok
  • 19. Konfiguráció ● XML alapú ● Minden modulnak saját van ● Ebben lehet mindent megadni ○ Saját modellek ○ Overrideok ○ Layoutok ○ Templatek
  • 20. Alap modul config.xml <config> <modules> <Magentotutorial_Configviewer> <version>0.1.0</version> </Magentotutorial_Configviewer> </modules> <global><!--...--> </global> <admin><!--...--> </admin> <adminhtml><!--...--> </adminhtml> </config>
  • 21. Events konfiguráció <events> <catalog_product_get_final_price> <observers> <xyz_catalog_price_observer> <type>singleton|model|object|disabled</type> <class>Xyz_Catalog_Model_Price_Observer</class> <method>apply_discount_percent</method> </xyz_catalog_price_observer> </observers> </catalog_product_get_final_price> </events> http://iansworld-nz.blogspot.hu/2013/04/magento-observer-types.html
  • 22. Events implementáció <?php class Xyz_Catalog_Model_Price_Observer { public function __construct() { } public function apply_discount_percent( Varien_Event_Observer $observer) { $event = $observer->getEvent(); $product = $event->getProduct(); /* Calculate discount */ return $this; } }
  • 23. Override <config> <global> <models> <tag> <rewrite> <tag>Your_Tag_Model_Tag</tag> </rewrite> </tag> <tag_resource> <rewrite> <tag>Your_Tag_Model_Resource_Tag</tag> <tag_collection>Your_Tag_Model_Resource_Tag_Collection</tag_collection> </rewrite> </tag_resource> </models> </global> </config>
  • 24. EAV model Mi is ez?
  • 25. EAV model Relációs model - User Table
  • 26. EAV model Relációs model - User Table EAV: user_entity table
  • 27. EAV model Relációs model - User Table EAV: user_entity table user_values EAV user_attribute
  • 28. EAV model Magento
  • 29. EAV model a gyakorlatban (model)
  • 30. EAV model a gyakorlatban (model) class Magentotutorial_Complexworld_Model_Resource_Eavblogpost extends Mage_Eav_Model_Entity_Abstract { protected function _construct() { $resource = Mage::getSingleton('core/resource'); $this->setType('complexworld_eavblogpost'); $this->setConnection( $resource->getConnection('complexworld_read'), $resource->getConnection('complexworld_write') ); } }
  • 31. EAV model a gyakorlatban (model) class Magentotutorial_Complexworld_Model_Eavblogpost extends Mage_Core_Model_Abstract { protected function _construct() { $this->_init('complexworld/eavblogpost'); } } public function indexAction() { $weblog2 = Mage::getModel('complexworld/eavblogpost'); $weblog2->load(1); var_dump($weblog2); }
  • 32. Templatezés
  • 33. Design package
  • 34. Default package könyvtár szerkezet
  • 35. Hol mi van?
  • 36. Template - könyvtár szerkezet / app / design - is location of design packages (layouts, templates, translations) / app / design / frontend - frontend design / app / design / adminhtml - HTML admin panel design / app / design / {area} / {package} / {theme} - theme customizations / app / design / {area} / {package} / {theme} / layout - .xml files that define block structure for different cases in website flow / app / design / {area} / {package} / {theme} / template - .phtml (html with php tags) templates / app / design / {area} / {package} / {theme} / locale - Zend_Translate compatible translation files for package/theme / app / locale - locale files
  • 37. Structural block
  • 38. Content block
  • 39. Layout leíró <default> <reference name="footer"> <!-- type: Module class id, name: other block reference, before,after: position in the structural block, template: phtml file --> <block type="cms/block" name="cms_footer_links" before="footer_links"> <!-The content of this block is taken from the database by its block_id. You can manage it in admin CMS -> Static Blocks --> <action method="setBlockId"><block_id>footer_links</block_id></action> </block> </reference> </default>
  • 40. Reference
  • 41. Remove <default> <remove name="left.permanent.callout" /> <!--the dog--> <remove name="right.permanent.callout" /> <!--back to school--> <remove name="catalog.compare.sidebar" /> <!--product compare--> <remove name="paypal.partner.right.logo" /> <!--paypal logo--> <remove name="cart_sidebar" /> <!--cart sidebar--> <remove name="left.reports.product.viewed" /> <!--recently viewed prod--> <remove name="right.reports.product.viewed" /> <!--recently viewed prod--> <remove name="right.reports.product.compared" /> <!--recently compared prod--> </default>
  • 42. Layout blokkok
  • 43. Modul fejlesztés
  • 44. Modul fejlesztés app - code - local - YourNamespace - LogProductUpdate - etc - config.xml - etc - modules - YourNamespace_LogProductUpdate.xml
  • 45. Konfigurálás app/code/local/YourNamespace/HelloWorld/etc/config.xml <?xml version="1.0" encoding="UTF-8"?> <!-- The root node for Magento module configuration --> <config> <!-- The module's node contains basic information about each Magento module <modules> <!-- This must exactly match the namespace and module's folder names, with directory separators replaced by underscores --> <YourNamespace_HelloWorld> <!-- The version of our module, starting at 0.0.1 --> <version>0.0.1</version> </YourNamespace_HelloWorld> </modules> </config> -->
  • 46. Aktiválás app/etc/modules/YourNamespace_HelloWorld.xml <?xml version="1.0" encoding="UTF-8"?> <config> <modules> <YourNamespace_HelloWorld> <!-- Whether our module is active: true or false --> <active>true</active> <!-- Which code pool to use: core, community or local --> <codePool>local</codePool> </YourNamespace_HelloWorld> </modules> </config>
  • 47. Controller konfigurálás <global> <!-- This node contains parameters, available on frontend --> <frontend> <!-- Module aliases are located in this block --> <routers> <!-- This node's name should be the same as our alias --> <helloworld> <!-- use parameter specifies which of basic routers needs to be used. This can be "standard" for frontend or "admin" for backend --> <use>standard</use> <args> <!-- This parameter specifies the full name of out module --> <module>YourNamespace_HelloWorld</module> <!-- This parameter sets module alias --> <frontName>helloworld</frontName> </args> </helloworld> </routers> </frontend> </global>
  • 48. Controller class app/code/local/YourNamespace/HelloWorld/controllers/IndexController.php class YourNamespace_HelloWorld_IndexController extends Mage_Core_Controller_Front_Action { public function indexAction() { /* * Initialization of Mage_Core_Model_Layout model */ $this->loadLayout(); /* * Building page according to layout confuration */ $this->renderLayout(); } }
  • 49. Layout /app/design/frontend/default/default/layout/helloworld.xml <?xml version="1.0" ?> <!-- Root node for Magento layout configuration --> <layout version="0.1.0"> <!--Page handle --> <helloworld_index_index> <!-- reference tag specifies the block where we a going to add child block --> <reference name="content"> <!-- Our page content block --> <block type="core/template" name="helloworld" template=" helloworld/view.phtml"></block> </reference> </helloworld_index_index> </layout>
  • 50. View /app/design/frontend/default/default/template/helloworld/view.phtml <p>Hello World!</p> app/etc/modules/YourNamespace_HelloWorld.xml <frontend> <!-- This node contains module layout configuration --> <layout> <updates> <!-- module alias --> <helloworld> <!-- File for loading --> <file>helloworld.xml</file> </helloworld> </updates> </layout> </frontend>
  • 51. Tippek és trükkök
  • 52. Tippek és trükkök 1. Ha úgy tűnik valami nem fut le dobjuk el a cache-t vagy kapcsoljuk ki
  • 53. Tippek és trükkök 2. Ha úgy tűnik valami nem fut le, lehet configurációs XML hiba (syntax error)
  • 54. Tippek és trükkök 3. Ha úgy tűnik valami nem fut le, lehet hogy nincs engedélyezve a modul System/Configuration/Advanced/Disable Module Output
  • 55. Tippek és trükkök 4 Magneto Debug tool
  • 56. Köszönöm a figyelmet! Kromesch Sándor sandor.kromesch@erise.hu