2. Quem sou eu? Desenvolvedor WEB há 9 anos (passou pela triste época de ter que renderizar html no Netscape 4 e pro IE5) Analista Desenvolvedor da Concrete Solutions, holding de TI com foco em Desenvolvimento de Software, atualmente trabalhando com RubyOnRails. Trabalhou 3 anos no UOL HOST com Magento sendo distribuído no modelo SaS Sócio do Cachaça Express Participou diretamente de mais de 10 projetos “Magento based” Instrutor do curso de Magento da PHPrime
3. Quem sou eu? marcelolinhares.com https://github.com/marcelolinhares http://www.linkedin.com/in/marcelolinhares
4. Agenda 1 – Introdução ao Magento e ruminanças sobre o mercado 2 – Conceitos e patterns por trás do Magento 3 - Dicas e Truques 4 – Bate papo ;-)
5. Magento pra quem não conhece? Robusta plataforma de e-commerce open-source , flexível e extensível desenvolvido em PHP + MySQL - mais de 100.000 lojas em todo mundo - Feature set compatível com grandes players fornecedoras de software B2C (Elasticpath, NetSuite, WebSphere Commerce, etc...) no mercado corporativo; - Expansível e modular (mais de 5 mil extensões disponibilizadas) - Comunidade ativa (mais de 600 mil membros no fórum oficial) - Recentemente comprada pela eBay
7. Modelos de licenciamento - Community - Professional (U$ 3.000,00 ano) - Enterprise (U$ 13.000,00 ano) - Magento Go (PasS – de U$15 a U$125,00)
8. Quem está usando? - UOL, Buscapé, Dafiti, MundoCorrida, IG, Imprensa Oficial de SP, ChefTV, GlossyBox, CloudRetail, CachaçaExpress, Grudado, FarmaDelivery, MyGeekDay, Roche, Rocket Internet, Mundo Corrida, Concrete Solutions, iPagare, Moip, FOX, Nokia, Kipling, Adidas, Olympus, Ford, Lenovo...
9.
10. Faltando mão de obra? - Média de duas propostas de trabalho por mês :-( - Só no Brasil existem vagas abertas atualmente na Rocket Internet, Concrete Solutions, Buscapé, UOL HOST... - 24 vagas abertas no Linkedin Brasil - 26 vagas abertas no fórum oficial (internacional)
11. Principais features - Cross-sell / Up-sell - Robusta engine de promoções - Suporta a comercialização de vários tipos de produtos; - Gestão completa de catálogos e estoque; - Otimizado para SEO - CMS - Multiloja e Multilayouts - Extensa variedade de relatórios nativos - Webmobile nativo - UGC, internacionalização, folksonomia, multi-usuários...
13. Um aviso O Magento foi pensado desde o início para ser flexível o suficiente para que programadores escrevessem módulos e extensões sem que alterasse as funcionalidades básicas do software (core) CUSTO? - O Magento tem um alto grau de complexidade, muitas vezes assustando designers e frontends (habituados com códigos PHP com apenas um arquivo) - Excesso de configuração e código para coisas aparentemente simples (tudo mapeado em XML);
14. O que tem por baixo? Magento roda na plataforma LAMP, utilizando Zend Framework como base class Varien_Cache_Core extends Zend_Cache_Core Varien_Db_Adapter_Pdo_Mysql class Varien_Filter_Object extends Zend_Filter
15. Arquitetura MVC - Magento utiliza padrão MVC baseado em configuração; - Necessidade explicita de adicionar todas as informações em arquivos de configuração; - Model View ViewModel ?
19. Modelo - EAV - Pra suportar um crescimento vertical, Magento precisou utilizar “modelos ricos” e extensíveis! - solução? EAV (Entity Attribute Value)
20. Modelo - EAV - EAV é um modelo de dados “aberto” que é usado em situações onde o número de atributos de uma entidade pode crescer elasticamente. Também conhecido como modelo de dados vertical - Em um modelo tradicional, entidades possuem um número fixo de atributos, no EAV, o número de atributos é elástico - No EAV, cada entidade que está sendo modelada tem um conjunto diferente de atributos
26. Actions - Responsável pelo roteamento e dispatch pra action correta - Cada action irá instanciar um objeto de layout - Ao contrário dos sistemas MVC padrão, NÃO passa estrutura de dados pra VIEW
27. Views - Camada de views no Magento é de certa forma complexa - Composta por Layouts, Blocks, Templates e Helpers
28. Views - Layouts – Chamada pelas actions, responsável por “carregar” os blocos - Os blocos são responsáveis por acessar os dados do Model (contém alguma regra de negócio) e carregam o template (arquivos .php) - Templates – Responsável pelo output dos dados (extensão .phtml) - Layouts – Chamada pelas actions, responsável por “carregar” os blocos - Os blocos são responsáveis por acessar os dados do Model (contém alguma regra de negócio) e carregam o template (arquivos .php) - Templates – Responsável pelo output dos dados (extensão .phtml)
29.
30. Módulos - O Magento suporta a criação de módulos, sem que que altere o “core” da aplicação - Flexibilidade, Customização, sem perder a capacidade de upgrade -
31. Módulos - Community: Disponibilizado para a comunidade (via Magento Connect – ou não) - Core: Módulos do release oficial do Magento, recomenda não alterar - Local: Módulos específicos da loja -
32. Toda configuração fica no XML <config> <modules> < PedroTeixeira _ Correios > <active>true</active> <codePool>community</codePool> </PedroTeixeira_Correios> </modules> </config> PedroTeixeira – Namespace / Fabricante Correios – Nome do Módulo -
33. Magento Connect Magento connect funciona como um gerenciador de pacotes (tipo apt, yum) - Permite baixar pacotes e temas da comunidade em poucos cliques - Atualmente existem mais de 5000 extensões -
35. Hands on - Dicas e Truques - Caches, Índices e catálogo flat - Debug para edição de layout - Otimizando a loja (caching de JS e CSS, habilizar gzip, memcache) -
36. Hands on - Dicas e Truques - Caches, Índices e catálogo flat - Debug para edição de layout - Otimizando a loja (caching de JS e CSS, habilizar gzip, memcache) - “Compilação” dos arquivos - Alterando rota do administrador - Debugando errors -
37. Onde obter mais informações? - Beba direto da fonte: magentocommerce.com Magento U - Comunidademagento.com.br - Escolamagento.com.br (Mário Sam) - Gooogle ? - Treinamento de Magento na PHPrime em Belo Horizonte no início de Janeiro -
38. Notas e referências Este webinar não é oficial do Magento - Referências magentocommerce.com escolamagento.com.br alanstorm.com/ -