Você está na página 1de 8

03/02/12

Criando um m dulo bsico no Magento | Bloix

Bloix
Home Sobre o Blog Deixe Sua Idia

Ferramenta de Pesquisa
digi e aq i o q e proc ra... Find i

Criando um m dulo bsico no Magento


A criao de um modulo no Magento E-commerce exige conhecimento em vrias coisas como a declarao de resources, declarao e criao de eventos, criao de blocks, helpers e models, etc. Na criao de uma loja virtual voc pode tambm tanto criar mdulos para suas prprias funcionalidades como para funcionalidades j existentes no Magento, como mtodos de envio ou mtodos de pagamento. Cada uma dessas merece um post especfico pela sua complexidade. Nesse artigo vou explicar a criao de um mdulo bsico. Tudo que for necessrio para comear a escrever um mdulo.

Entendendo a estrutura de m dulos no Magento


Os mdulos devem ficar dentro da pasta app que por sua vez fica na raz da aplicao. Como o Magento implementa MVC os arquivos dos mdulos que contm cdigo PHP e cdigo HTML ficam separados dentro das pastas code e design respectivamente. Se voc est perdido com esse monte de pastas no se preocupe, farei um post s sobre elas. J dentro da pasta , temos mais 3 pastas:

core Aqui dentro ficam todos os mdulos que fazem parte do core do Magento. Nunca altere nenhum arquivo aqui dentro, pois o risco de dar problema na hora de fazer upgrade muito grande. community J nesta pasta fica todos os mdulos disponibilizados pela comunidade. Se voc baixar algum mdulo a partir do Magento Connect ele vai jogar esses mdulos aqui dentro. Caso voc baixe por conta prpria recomendado que voc jogue o cdigo aqui dentro. local A pasta onde voc deve escrever os mdulos especficos da sua loja. Se por exemplo voc sobrescreveu algum mdulo do Magento para atender a uma especificao do seu cliente, ponha seu cdigo aqui. Dentro de cada pasta dessa temos vrias outras pastas. Essas pastas representam as companhias que desenvolveram os mdulos e dentro das pastas das companhias temos os mdulos disponibilizados por elas. Por exemplo, se a NOIX criasse um mdulo chamado e ou outro , e eles fossem disponibilizados para a comunidade teriamos os dois caminhos: /app/code/community/Noix/AdvancedBanners /app/code/community/Noix/AdvancedSearch

Entendendo o m dulo
Antes de mais nada vamos entender o que nosso mdulo ir fazer. Como a idia manter a simplicidade para melhorar o entendimento, vamos apenas fazer com que nosso mdulo imprima Hello World quando eu acessar o endereo . importante saber que o Magento escrito em cima do Zend Framework e o entender bsico do fluxo interno. Em resumo funciona da seguinte maneira: 1. Recebendo a requisio do usurio Quando o usurio escreve no navegador o Magento recebe a informao da URL que eles est tentando acessar. Aps receber a URL do usurio o Magento faz o seguinte processo: retira sua url base e repassa todo o resto para seu Router. No nosso caso
bloix.com.br/gestaodeconteudo/criando-um-modulo-basico-no-magento 1/8

03/02/12

Criando um m dulo bsico no Magento | Bloix

nossa url base e tentaremos acessar o endereo . Logo o Magento repassar para seu Router o texto . 2. Fazendo rotas O Magento mantm um registro de todas as rotas que ele deve fazer em seu Router, ou seja, uma vez a URL tratada, o texto que restar o Magento saber tratar para descobrir qual mdulo, qual controller e qual action ele deve chamar e quais os parmetros ele deve passar. Sabendo disso vamos criar a estrutura do nosso mdulo que dever seguir o caminho: Dentro da pasta deve ser criada uma pasta chamada controllers, onde ficaro todos os daquele mdulo. Crie tambm dentro de uma pasta chamada etc. O corao dos mdulos do Magento so seus XML s. Quase tudo nele configurvel atravs de XML. E as configuraes dos mdulos ficaro dentro de suas respectivas pastas . Agora temos as pastas Diretrios Magento e .

Configurando o m dulo
Crie dentro da pasta mdulo. um arquivo chamado config.xml. Dentro dele fica toda a configurao bsica para o funcionamento do

O XML deve ser bem formatado portanto comearemos com a tag: 1 <xlvrin"."ecdn=UF8? . ?m eso=10 noig"T-" Como em um XML bem formatado obrigatrio ter um n pai, o Magento padronizou que seu n pai ser sempre chamado de config. Ento ficar: 1 <xlvrin"."ecdn=UF8? . ?m eso=10 noig"T-" 2 <ofg . cni 3 <cni . /ofg Em seguinda daremos informaes do mdulo como seu nome, verso e at mesmo quais outros mdulos ele depente: 0. <ofg 1 cni 0. 2 <oue mdls 0. 3 <oxHlool Ni elWrd 0. 4 <eso 10/eso vrin .<vrin 0. 5 <eed dpns 0. 6 <- * Nsomdl nodpned nd.mss dpnes preepod !- * os uo eed e aa a e eedse o xml o 0. 7 mdl d evod Mgnoeceeimsasm uo e ni o aet srvrao si: 0. 8 <aeSipn / Mg hpig 0. 9 1. 0 <dpns /eed 1. 1 <Ni Hlool /ox elWrd 1. 2 <mdls /oue 1. <cni 3 /ofg Aps isso continuaremos criando mais ns dentro do n config. Quando configuramos um mdulo temos que informar qual tipo de configurao estaremos fazendo. So bsicamente 3 tipos: global Informaes gerais do mdulo ou coisas que ser usado por ele independente se na rea administrativa ou no frontend. Por exemplo: declaraes de do mdulo, declaraes , reescritas de URL, configurao de , etc.
bloix.com.br/gestaodeconteudo/criando-um-modulo-basico-no-magento 2/8

03/02/12

Criando um m dulo bsico no Magento | Bloix

fron end Configuraes que afetaram o frontend do Magento, ou seja, a parte em que os usurios compradores tem acesso. Aqui podemos informar nome dos arquivos de traduo, nome do arquivos xml de configurao de layout, rotas que o Magento far no frontend, etc. adminh ml Aqui vale o mesmo para o frontend, porm as configuraes afetaram apenas a rea administrativa do Magento. Agora que sabemos disso, vamos informar ao Magento que ele deve ter em seu Router uma rota que ao receber o text URL ele procure pelos controllers dentro do mdulo . 0. <rned 1 fotn 0. 2 <- Au fc tdsa cniuasd rt d Mgno!- qi ia oa s ofgre e oa o aet 0. 3 <otr rues 0. 4 <elwrd hlool 0. 5 <- etmsdznoqeet rt vr pl fotn !- sao ied u s oa i eo rned 0. 6 <s sadr<ue ue tnad/s 0. 7 <- O agmno pr cniua art !- s ruets aa ofgrr oa 0. 8 Dzmsqa onm sr caaofotae eqa mdl eei ieo ul oe e hmd(rnNm) ul ouo l r poua(oue rcrrmdl) 0. 9 1. 0 <rs ag 1. 1 <oueNi_elWrd/oue mdl oxHlool<mdl 1. 2 <rnNm hlool<fotae fotae elwrd/rnNm 1. 3 <ag /rs 1. 4 <hlool /elwrd 1. 5 <rues /otr 1. <fotn 6 /rned Pronto! Agora o Magento sabe que toda vez que alguem acessar ele deve procurar por controllers dentro da pasta . Ou seja, como a parte de controllers o Magento herda do Zend Framework, por padro ele ir procurar pelo arquivo , instanciar a classe e chamar o mtodo . Agora se o endereo chamado for , ele ir procurar pelo arquivo , instanciar a classe e chamar o mtodo . Confira como ficou o XML na ntegra: 0. <xlvrin"."ecdn=UF8? 1 ?m eso=10 noig"T-" 0. <ofg 2 cni 0. 3 <oue mdls 0. 4 <oxHlool Ni elWrd 0. 5 <eso 10/eso vrin .<vrin 0. 6 <eed dpns 0. 7 <- * Nsomdl nodpned nd.mss dpnes preepod !- * os uo eed e aa a e eedse o xml o 0. 8 mdl d evod Mgnoeceeimsasm uo e ni o aet srvrao si: 0. 9 <aeSipn / Mg hpig 1. 0 1. 1 <dpns /eed 1. 2 <Ni Hlool /ox elWrd 1. 3 <mdls /oue 1. 4 1. 5 <rned fotn 1. 6 <- Au fc tdsa cniuasd rt d Mgno!- qi ia oa s ofgre e oa o aet 1. 7 <otr rues 1. 8 <elwrd hlool 1. 9 <- etmsdznoqeet rt vr pl fotn !- sao ied u s oa i eo rned 2. 0 <s sadr<ue ue tnad/s 2. 1 <- O agmno pr cniua art !- s ruets aa ofgrr oa 2. 2 Dzmsqa onm sr caaofotae eqa mdl eei ieo ul oe e hmd(rnNm) ul ouo l r poua(oue rcrrmdl) 2. 3 2. 4 <rs ag 2. 5 <oueNi_elWrd/oue mdl oxHlool<mdl 2. 6 <rnNm hlool<fotae fotae elwrd/rnNm 2. 7 <ag /rs 2. 8 <hlool /elwrd 2. 9 <rues /otr
bloix.com.br/gestaodeconteudo/criando-um-modulo-basico-no-magento 3/8

na

03/02/12

Criando um m dulo bsico no Magento | Bloix

3. 0 <fotn /rned 3. <cni 1 /ofg Com isso precisamos apenas criar nossa classe imprimindo o texto "Hello Word": 0. 1 0. 2 0. 3 0. 4 0. 5 0. 6 0. 7 0. 8 0. 9 1. 0 1. 1 <pp ?h casNi_elWrdIdxotolretnsMg_oeCnrle_rn_cin ls oxHlool_neCnrle xed aeCr_otolrFotAto { pbi fnto idxcin) ulc ucin neAto( { eh 'el Wrd; co Hlo ol' } }

Talvez voc esteja esperando que a frase "Hello World" aparea dentro do layout do Magento, porm ao executar o cdigo voc ver que a tela ficar toda branca com apenas o texto nela. Para que essa frase seja apresentada dentro do Magento necessrio aplicarmos mais uns estudos em cima das e dos do Magento. Mas isto vai ficar para um outro post. Antes de finalizar precisamos informar ao Magento que nosso mdulo existe para que ele seja executado. Crie dentro da pasta /app/etc/modules o arquivo Noix_HelloWorld.xml e insira o seguinte contedo: 0. <xlvrin"."ecdn=UF8? 1 ?m eso=10 noig"T-" 0. <ofg 2 cni 0. 3 <oue mdls 0. 4 <oxHlool Ni elWrd 0. 5 <- Ifroqeomdl vr aioprpd. !- nom u uo i tv o aro 0. 6 Is cniuae n e amnsrtv so ofgrvl a ra diitaia 0. 7 <cietu<atv atv re/cie 0. 8 0. 9 <- Qa otp aalco cr,lclo cmuiy!- ul io pia: oe oa u omnt 1. 0 <oeollcl/oeol cdPo oa<cdPo 1. 1 <Ni Hlool /ox elWrd 1. 2 <mdls /oue 1. <cni 3 /ofg

Dvidas, reclamaes ou sugestes? Por favor, utilize os comentrios. Compa ilhe em o a ede :

Tags / Desenvolvimento Magento - Loja Virtual - Magento - Mdulo Magento 1. disse: 9 de fevereiro de 2010 s 8:26 Nossa Kara!! Muito bom seu post! Estou iniciando com magento, joomla e, consequentemente, MVC. Clareou legal minha compreenso em relao ao magento. O site t de parabns. 2. disse: 9 de fevereiro de 2010 s 15:55 Opa! Muito obrigado pelo comentrio! Estimula a gente a querer escrever mais e ajudar a comunidade. Espero que o post tenha te ajudado bastante. Estou escrevendo mais para ajudar quem t comeando. Qualquer dvida pode entrar em contato com a gente!
bloix.com.br/gestaodeconteudo/criando-um-modulo-basico-no-magento 4/8

03/02/12

Criando um m dulo bsico no Magento | Bloix

3.

disse: 9 de fevereiro de 2010 s 23:47 Ol, Muito bom o artigo! j est nos favoritos!..rs Parabns! Abs

4.

disse: 10 de fevereiro de 2010 s 10:17 Bruno Viana meus parabns pelo timo posto para iniciao em desenvolvimento na plataforma magento, muito bom mesmo, continue assim ajudando a galera que tem interesse. Abrao!

5.

disse: 19 de fevereiro de 2010 s 22:39 Obrigado pelo comentrio, Marcos! Eu acredito que assim que criamos uma comunidade forte e ativa.Vmos todos nos ajudar. Fique ligado que logo viro mais. Abraos.

6.

disse: 11 de maro de 2010 s 10:22 Parabns ae Bruno, timo post.

7.

disse: 27 de abril de 2010 s 7:46 Gostei muito do contedo, consegui entender melhor a estrutura dos arquivos do magento. S no consegui rodar este mdulo hello world! O que ser que fiz de errado? preciso configurar alguma coisa no adm do magento para ver funcionando este exemplo? Estou com o magento publicado na minha mquina.

8.

disse: 13 de maio de 2010 s 11:29 Parabns muito bom . ficou bem claro . s no consegui rodar tb . j revisei e revisei .. rola de vc dra u help maninho?

9.

disse: 13 de maio de 2010 s 17:29 Parabns! Ficou muito bom e me tirou uma p de dvidas. Porm no consegui criar um mdulo, estou que nem o Guilherme . magento instalado na minha maquina local porm ao executar o link: http://localhost/magento/helloworld aparece esse erro no browser: Arquivo no encontrado O Firefox no conseguiu localizar o arquivo http://localhost/magento/helloworld. Um abrao!

bloix.com.br/gestaodeconteudo/criando-um-modulo-basico-no-magento

5/8

03/02/12

Criando um m dulo bsico no Magento | Bloix

10.

disse: 13 de maio de 2010 s 17:29 Parabns! Meu e-mail no post anterior tava errado Ficou muito bom e me tirou uma p de dvidas. Porm no consegui criar um mdulo, estou que nem o Guilherme. magento instalado na minha maquina local porm ao executar o link: http://localhost/magento/helloworld aparece esse erro no browser: Arquivo no encontrado O Firefox no conseguiu localizar o arquivo http://localhost/magento/helloworld. Um abrao!

11. 16 de junho de 2010 s 15:10

disse: Fiquei um tempo para ver que tinha escrito codePool erro, tinha escrito codePoll. Vlw pelo dica, blog com informao util.

12.

disse: 8 de julho de 2010 s 22:44 Parabns pelo post, muito esclarecedor.

13.

disse: 6 de janeiro de 2011 s 10:08 Fiquem atentos que em uma determinada parte do texto o autor escreve http://minhaloja.com.br/helloword sem o L do world ai tu vai tentar replicar no teu ambiente copiando essa linha do helloword acaba no achando a pgina. No mais ficou excelente principalmente a contextualizao dos conceitos bsicos do Magento. parabns.

14.

disse: 19 de janeiro de 2011 s 8:55 timo post! J esta nos favoritoscontinue postando e esclarecendo-nos sobre o magento.

15.

disse: 21 de maro de 2011 s 10:22 Cara valew pelo post. Eu fiquei apanhando aqui at descobrir que o cache estava habilitado, dai no aparecia a pgina helloworld. Mas em fim, agora vou tentar aplicar isso no admin. Valew

16.

disse: 12 de outubro de 2011 s 13:18 Ol Bruno, No meu caso no est funcionando, estou usando a verso 1.6.0.0 e o magento est dentro de uma pasta (pasta) tipo http://www.meusite.com.br/pasta/helloworld ser que tenho que mudar alguma coisa dentro do XML por causa de estar dentro de uma pasta?

bloix.com.br/gestaodeconteudo/criando-um-modulo-basico-no-magento

6/8

03/02/12

Criando um m dulo bsico no Magento | Bloix

Parabns pelo site uma iniciativa muito nobre!!!!

Deixar um comentrio.
Nome Email (no ser publicado) Site

Enviar Coment rio

Assine nosso feed completo

Twitter
Error: Twitter did not respond. Please wait a few minutes and refresh this page.

Nossas categorias
Comunicao (18) Desenvolvimento Web (9) Gesto de Contedo (16) Internet (14) Marketing (3) Marketing Digital (39) Mdias Sociais (24) NOIX (10)

ltimos posts comentados


Hugo Bellard em Unicode e o fim dos problemas de codificao Giovanni Amorim em Apresentando: Magento manutecao em No investir em Marketing Digital ainda uma opo? Luana em No investir em Marketing Digital ainda uma opo? Eduardo em Criando um mdulo bsico no Magento Arthur M Faanha em NOIX Internet, Rede de Farmcias Pague Menos e o universo feminino dos blogs de moda carol em Brasil est no topo do ranking na utilizao da Internet para compras de produtos e servios Arthur M Faanha em Brasil est no topo do ranking na utilizao da Internet para compras de produtos e servios Carlos em Brasil est no topo do ranking na utilizao da Internet para compras de produtos e servios manutecao em ComScore registra crescimento nas visitas redes sociais em maio

Posts recentes
Brand pages do Twitter deve ser lanado nesta semana [VAGA] Desenvolvedor PHP [VAGA] Web Analytics / SEO [VAGA] Webwriter/Social Media Google+ agora com o recurso de pginas de empresas Joomla 1.7 A Internet cada vez mais utilizada para reclamaes sobre empresas Palestra E-commerce com Magento , com Bruno Viana Veja como o mundo utiliza as diferentes rede sociais Brasileiros optam por E-commerces americanos para a compra de roupas
bloix.com.br/gestaodeconteudo/criando-um-modulo-basico-no-magento 7/8

03/02/12

Criando um m dulo bsico no Magento | Bloix

NOIX In erne

bloix.com.br/gestaodeconteudo/criando-um-modulo-basico-no-magento

8/8