+ All Categories
Home > Technology > 2012 03-27 developers e-commercedag presentatie1 magento

2012 03-27 developers e-commercedag presentatie1 magento

Date post: 06-Dec-2014
Category:
Upload: combell-group
View: 479 times
Download: 1 times
Share this document with a friend
Description:
 
28
Het maximum uit uw Magento installatie Presentatie door: Jasper De Craecker PHPro Consultant
Transcript
Page 1: 2012 03-27 developers e-commercedag presentatie1 magento

Het maximum uit uw Magento

installatiePresentatie door:

Jasper De CraeckerPHPro Consultant

Page 2: 2012 03-27 developers e-commercedag presentatie1 magento

Onderwerpen

• Over Magento

• Magento ecosysteem

• Magento applicatie structuur

• Magento Modules

• Magento Themes

• Handige tools & weetjes

• Performance & schaalbaarheid

• Magento in de toekomst

• Conclusie

Page 3: 2012 03-27 developers e-commercedag presentatie1 magento

Magento

• eCommerce pakket gebaseerd op open-source technologiëen

• PHP

• MySQL

• Zend Framework

• APC, MemCached, Apache, Nginx, …

• Overgenomen door eBay in zomer 2011

• De term “Magento” is volgens Google Trends populairder dan “eCommerce”

• Open source: Magento Community (ongeveer 1 stable release per kwartaal)

• Commercieel: Magento Enterprise

• Meer geavanceerde functionaliteiten “out of the box”

• Support + SLA’s

Page 4: 2012 03-27 developers e-commercedag presentatie1 magento

Key features van Magento

• Multi-channel platform

• Desktops.voorbeeld.be & Laptops.voorbeeld.be

• Specifieke look & feel, Ogone account, product cataloog, klanten bestand, taal, …

• Zeer geavanceerde product cataloog (ook gebruikt als PIM)

• Virtueel oneindig aantal product attributen

• Gelaagde navigatie (layered navigation)

• Multi-language/multi-currency support

• Gestandaardiseerd order beheer/flow

• Geavanceerde analytics en rapportering

Page 5: 2012 03-27 developers e-commercedag presentatie1 magento

Magento ecosysteem

• Magento Community

• Gratis open-source versie van Magento

• Magento Enterprise

• Uitgebreide versie van Magento, license model vanaf $14,420 per server

• Magento Connect

• 5000+ gratis en betalende modules

• Magento Go

• Cloud-based Magento oplossing voor starters

• Magento University

• On-demand training, instructor-led training, certification

• Magento Certified Developer Certification

• Magento Certified Developer + Certification

Page 6: 2012 03-27 developers e-commercedag presentatie1 magento

Applicatie structuur

• Magento is gebaseerd op het Model – View – Controller design pattern

• app/code & app/skin Belangrijkste applicatie mappen

• app/etc/local.xml Systeem/applicatie configuratie

• Elke specifieke functionaliteit binnen Magento is als module geïmplementeerd

• Configuratie bestanden worden steeds in XML formaat gedefinïeerd

• Controllers

• Models

• Setup scripts

• Blocks

• Config files

• Kracht van Magento:

• Elke klasse kan uitgebreid worden, alles kan overschreven worden

Page 7: 2012 03-27 developers e-commercedag presentatie1 magento

Magento Modules

• Modules bestaan in de meeste gevallen uit 2 mappen op de Magento root:

• app/* (alle .php/.xml files)

• skin/* (alle front-end gerelateerde files)

• Module naamgeving bestaat steeds uit “Packagename_Modulename”

• De standaard structuur van een module:

• Magento Connect Packages

• Gebruikt om modules te verdelen,gebaseerd op PEAR packages

Opgelet: Uppercase/lowercase?

Page 8: 2012 03-27 developers e-commercedag presentatie1 magento

XML configuratie bestanden

• 5 verschillende types

• Adminhtml.xml

• Gebruikt voor de Magento back-end opbouw

• Api.xml

• Overschrijven van de interne Magento API

• Wsdl.xml

• Functionaliteit toevoegen aan de Magento webservices

• System.xml

• Module configuratie parameters, via Admin > System > Configuration

• Config.xml

• Altijd vereist, samenvoeging van bovenstaande XML bestanden is mogelijk (interessant voor kleinere modules)

Page 9: 2012 03-27 developers e-commercedag presentatie1 magento

XML configuratie voorbeeld

Configuratie XML reference sheet:www.magentocommerce.com/wiki/5_-_modules_and_development/reference/module_config.xml

Page 10: 2012 03-27 developers e-commercedag presentatie1 magento

PHPro Magento modules

• PHPro Translate module

• Vertaal elke interface string in Magento

• http://www.magentocommerce.com/magento-connect/phpro-translate-tool-4037.html

• CHILI Connector for Magento

• Web2print in Magento, integratie met CHILI Publisher

• http://www.phpro.be/portfolio/detail/chili-connector-magento

• PHPro PromoSet module

• Verkoop X producten samen aan prijs Y

• In ontwikkeling

• Bpost shipping module

• Integratie met de Bpost shipping manager service

• http://www.magentocommerce.com/magento-connect/bpost-shipping-manager.html

• VASCO MyDIGIPASS integratie module

• In ontwikkeling

Page 11: 2012 03-27 developers e-commercedag presentatie1 magento

Magento Themes

• Magento wordt beschikbaar gemaakt met 2 “productie klare” look & feels

• Standard Modern

• De back-end administratie look & feel wordt zelden of nooit gewijzigd

Back-end

Page 12: 2012 03-27 developers e-commercedag presentatie1 magento

Magento Themes aanpassen

• De instap drempel voor Magento theming is relatief hoog

• De layout is steeds gebaseerd op een van de volgende kolom layouts:

• 1-column

• 2-columns left/right

• 3-columns

• Print/blank/popup

• Via XML worden deze layouts opgevuld (met blocks, al dan niet op basis van .phtml files)<customer_account_login translate="label">

<label>Customer Account Login Form</label>

<!-- Mage_Customer

 <remove name="right"/>

<remove name="left"/>

<reference name="root”>

<action method="setTemplate"><template>page/1column.phtml</template></action>

</reference>

<reference name="content”>

<block type="customer/form_login" name="customer_form_login" template="customer/form/login.phtml"/>

</reference>

</customer_account_login>

Page 13: 2012 03-27 developers e-commercedag presentatie1 magento

Development Tools

• Wiz tool

• Command-line interface voor Magento

• Developer Toolbar

• Template file hinting tijdens front-end development/theming

• AOE_Scheduler

• Cronjob dispatching/debugging via het interne cron systeem van Magento

• Inchoo_Developer

• FirePHP logging vanuit Magento

• Magento Core debugging features

Page 14: 2012 03-27 developers e-commercedag presentatie1 magento

Wiz Tool

• Command-line tool voor Magento

• Features

• Create/list admin users

• List Magento installation version

• Dispatch events

• Create extensions

• Beheren van Magento core features

• Cache

• Indexer

• Compiler

• Config settings

• Installeer dit op een productie omgeving om makkelijk cache te clearen, indexes te vernieuwen, etc… bij het deployen

• Online: https://github.com/nvahalik/Wiz

Page 15: 2012 03-27 developers e-commercedag presentatie1 magento

Tools – MW_DeveloperToolbar

• Must-have toolbar voor Magento developers

• Key features

• Voegt een “sticky” developer toolbar toe op elke pagina

• Templating hints in/uitschakelen, cache, store code urls, SEO rewrites, etc..

• Installation keymagento-community/HM_DeveloperToolbar

Page 16: 2012 03-27 developers e-commercedag presentatie1 magento

Tools – AOE_Scheduler

• Bekijk welke cronjobs op de achtergrond draaien, binnenkort zullen starten, of plan zelf een cronjob handmatig in op een bepaald ogenblik

• Belangrijkste functionalteiten

• Weergeven van geplande cronjobs

• Schedule one-time cronjobs

• Annuleer geplande cronjobs

• Online: http://www.magentocommerce.com/magento-connect/aoe-scheduler.html

Page 17: 2012 03-27 developers e-commercedag presentatie1 magento

Tools – Inchoo_Developer

• FirePHP voor Magento, Firefox + Firebug vereistMaakt het analyseren van var_dumps mogelijk met Firebug

• Key feature

• Writing debug data to Firebug (FirePHP) instead of html output

• Basic usage:Mage::helper('firephp')->send('Lorem ipsum sit amet ..'); Mage::helper('firephp')->debug(Mage::getModel('catalog/product')->load(54));

• Installation keymagento-community/Inchoo_Developer

Page 18: 2012 03-27 developers e-commercedag presentatie1 magento

Magento Core Debug features

• Basic developer setup

• SetEnv MAGE_IS_DEVELOPER_MODE “yes”

• Mage::getIsDeveloperMode()Use this when creating modules with large amounts of debugging/logging code

• Inspecting variable contents

• Veel Magento objecten zijn enorm groot en gedeeltelijk recursief

• Var_dump van de _data array voor alle data binnen een model

• Var_dump van de _items array voor alle items binnen een Magento Collection

Page 19: 2012 03-27 developers e-commercedag presentatie1 magento

Magento Core Debug features

• Profiling

• Enable profiling in the back-end

• Also modify index.php to enable output to the front-end:

• Exception.log, System.log

• Enable exception and system log on development and staging(Admin > System > Configuration > Developer > Log Settings)

Page 20: 2012 03-27 developers e-commercedag presentatie1 magento

Magento Core Debug features

• Mage::log()

• Basis gebruik:Mage::log(“Your Log Message”);

• Schrijft log berichten naar var/log/system.log, gebruik tail –f system.log2011-06-08T10:35:04+00:00 DEBUG (7): Your log message

• Mage::log() naar andere log bestanden

• Basis gebruikMage::log(“Your Log Message”, Zend_Log::INFO, “your_log_file.log”);

• Mage::log(“Product stack trace: “.print_r($product, true));

• Use cases voor geavanceerder gebruik:

• Schrijf elke synchronisatie job met een extern systeem naar een ander bestand

• Gebruik de 2de log type parameter om een prioriteit mee te gevenZend_Log::Log, Info, Warn, Error, Trace, Exception, …

Page 21: 2012 03-27 developers e-commercedag presentatie1 magento

Magento Core Debug features

• Modules uitschakelen (in geval van nood)

• Optie 1: Disable block output

• Mogelijk vanaf de administratie back-end(admin > system > configuration > Disable Modules Output)

• Dit zal enkel de block output uitschakelen! (html printing)

• Optie 2: Module volledig uitschakelen via XML

• Verander de Package_Module.xml file in de /app/etc/modules map

• Verander <active>false</active>

• Deze module wordt vanaf nu genegeerd door Magento( handig wanneer een module een fout veroorzaakt waardoor de installatie niet meer werkt! ;-) )

Page 22: 2012 03-27 developers e-commercedag presentatie1 magento

Performance & schaalbaarheid

• Standaard server vereisten van Magento zijn relatief hoog

• PHP memory_limit: 256MB (bij voorkeur 512MB)

• CPU capaciteit is in de meeste gevallen geen probleem

• Ga voor een VPS/Dedicated server/Cloud hosting omgeving

• Voornaamste redenen van hoge systeem vereisten:

• Veel & grote XML configuratie bestanden (vooral bij 1ste request & installatie)

• EAV model vereist veel “onderhoud” (indexering, flat tables, etc…)

• Groot aantal PHP includes (héél groot!)

• Disk I/O is een grote bottle-neck

• (caching is standaard gebaseerd op het file-systeem)

Page 23: 2012 03-27 developers e-commercedag presentatie1 magento

Performance – Quick wins

• Koop een goed hostingpakket aan ;-)

• Installeer APC voor opcode caching

• Magento Compiler inschakelen (gemiddeld 25-50% performance winst)

• CSS/JS merging + Gzip compressie inschakelen

• Schakel Magento “flat catalogs” in

• Gebruik een CDN/proxy voor static file hosting

• Sla cache/session files op in een virtueel file systeem (bijvoorbeeld met tmpfs)<cache>        <backend>apc</backend>        <prefix>MAGE_</prefix></cache>

• Basis MySQL configuratie tuning

• Innodb_buffer_pool_size, Innodb_thread_concurrency, query_cache_size, query_cache_limit, …

Page 24: 2012 03-27 developers e-commercedag presentatie1 magento

Performance – Going (PH)Pro ;-)

• Load balancer met n-applicatie servers

• Sessies opslaan in de database

• Caching lokaal op elke server

• Configureer een MySQL cluster voor aparte read/write connecties

• Gebruik Memcache voor session storage

• Aparte server voor cron/admin taken

• Full page caching

• Dynamische content geladen met AJAX (shoppingcart)

• Geen caching op HTTPS toegelaten (shopping cart pagina naar HTTPS gezet)

• Laadtijden < 1 second ()

Page 25: 2012 03-27 developers e-commercedag presentatie1 magento

Magento in de toekomst

• Huidige versie: Magento Community 1.7.0-beta

• New Layered Navigation price bucket algorithm

• Added captcha functionality

• Implemented different base prices for customer groups (B2B!)

• Added auto generation of coupon codes

• Backup and Rollback functionality

• VAT ID Validation added

• Implemented DHL for Europe

• Magento Enterprise 1.12

• Customer segmentation for visitors

• Customer segments and rule-based product relations

• Base and special prices by customer groups

• Create and Manage named Wish lists Public and Private Lists

• HTML5 Mobile theme

• Facebook Open Graph 2.0 Integration

Page 26: 2012 03-27 developers e-commercedag presentatie1 magento

Magento 2 in de toekomst

• Algemeen

• Eerste Magento 2 Alpha release in December 2011

• Herschreven view systeem

• Volledig gebruik van PHP5.3 en namespaces

• Zend Framework 2 wordt momenteel niet gebruikt

• Webservices voor elke module

• Doorgedreven modulair systeem (geen verborgen dependencies)

• Minder steile “learning curve”

• Alpha release beschikbaar op Github:https://github.com/magento/magento2

• Meer informatie in verband met Magento 2:https://wiki.magento.com/display/MAGE2PROJECT/

Page 27: 2012 03-27 developers e-commercedag presentatie1 magento

Conclusie

• Voordelen van Magento als e-commerce platform

• Veelzijdig en zeer configureerbaar (met multi-channel als belangrijkste troef)

• Groot aantal gratis/low cost modules aangeboden via Magento Connect

• Indien goed geconfigureerd en opgezet een zeer betrouwbaar platform

• Magento Certified Developers maken de keuze en zoektocht naar een betrouwbare implementatie partner makkelijker

• Mogelijke pitfalls

• Performance is soms een probleem, afhankelijk van bezoekers, aantal producten, types van producten/complexiteit,…(dit is ondertussen wel al een zeer goed gedocumenteerd en aan te pakken probleem door ervaring)

• Leercurve van Magento is steil, vooral op vlak van maatwerk en theming

Algemeen: Bij een e-commerce project komt steeds meer kijken dan het installeren en uitrollen van een software pakket!

Page 28: 2012 03-27 developers e-commercedag presentatie1 magento

Tot slot

Vragen? :-)

Volg ons op Twitter:

@PHProtweets

Kom ook onze presentaties op E-shop Expo bekijken op donderdag:

Starten met e-commerce: Denk aan alle facetten - Pieter Caluwaerts

Thuiszorgwinkel.be, Magento op z’n best geïntegreerd - Kevin Hereman

PHPro Magento blogs:

http://www.phpro.be/blog/


Recommended