Magento E-Commerce
por João Vagner em 21.02.2010 10:49 Desenvolvimento web, Internet, OOP, ecommerce, frameworks, php
Quem nunca ouviu falar hoje em dia de uma das ferramentas mais completas para e-commerce disponíveis gratuitamente, se você nunca ouviu falar, esta na hora de de atualizar hein?

O Magento se tornou hoje a principal ferramenta para comercio eletrônico, alem de completo, tem a robustez do Zend Framework, e diversos conceitos de ecommerce e SEO otimizados. Tudo, quer dizer, quase tudo hoje se faz no magento sem muitas dificuldades. Alem do Zend Framework por traz em seu código, ele implementa todas as possibilidades do Pear, traz consigo uma estrutura de canais para módulos aonde a comunidade desenvolve, e você pode usufruir muito bem através de alguns comandos práticos e simples.
O Magento também esta disponível por SVN, o que facilita muito o desenvolvimento, e um padrão / qualidade de código excelente. As instalações do magento são simples, e pode ser feita muito simplesmente por qualquer um com acesso ao SSH da conta. Praticidade total. O Próximo artigo dessa serie sera a instalação e configuração básica da loja, cache, e módulos Claro, depois de nossa introdução a alguns conceitos aplicados pelo magento, tanto em código, quanto em uso de sistema.
1 – Estrutura básica de trabalho.
Existe um bom senso para se trabalhar com o magento, uma estrutura compartilhada segura muito bem, claro, desde que configurado para se tornar leve, trabalhar com cache. Veja aqui os requisitos que o magento necessita para um BOM desempenho em produção. Mas iremos ver isso mais para a frente. Agora e hora da nossa introdução a pastas do Magento. Pastas nos quais iremos ter acesso para upload e modificação de arquivos.
- app - Pasta da sua aplicação
- code - Pasta do seus modulos
- comunity
- core
- local
- design - Pasta aonde toda a estrutura de layout, blocos, xml e xhtml (.phtml), sao armazenados
- adminhtml
- frontend
- install
- etc – Pasta de XML de configurações de sua loja
- locale – Pasta com as linguas instaladas em sua Loja, tipo pt_BR, En, fr_FR, etc
- code - Pasta do seus modulos
- media – Pasta aonde as imagens do seu catalogo sao armazenadas, recortadas e trabalhadas.
- var – Pasta de exportação de dados, backups do banco e etc
- skin – Pasta aonde encontrados o css, javascript e imagem relativa a nosso tema.
- adminhtml
- frontend
- install
Se você for curioso deve estar se perguntando porque as pastas frontend estão com enfase, simples, porque são elas as responsáveis por nosso front-end, html, css, javascript, blocos, etc. Ali e onde a magica ocorre e o template ou tema toma vida.
Pronto, agora já visto a estrutura de pasta do magento, você já sabe aonde e porque deve mexer, cada coisas em seus lugares formando uma plataforma versátil de comercio eletrônico.
2 – O Conceito de “EAV” e Base de Dados.
O magento trabalha com modelo de EAV em suas tabelas. Agora você desenvolvedor deve estar pensando que a coisa esta se complicando. Na verdade esta simplificando. Entramos agora no conceito de Entity-Attribute-Value.
O Modelo proposto de EAV e totalmente oposto da modelagem comum, O modelo simples de modelagem seguindo o ER, no futuro traz alguns obstáculos quando possui uma evolução constante, e muita vezes o modelo de dados tem que se adaptar as novas regras do jogo, e do em questão de compatibilidade, isso se torna bem ruim.
O Conceito básico do EAV e simples, tenha como ideia guardar o Objeto, o atributo e seus valores de atributos. Você esta bem blindado de mudança nas regras do jogo, pois seu modelo baseado em EAV se adapta com muita facilidade a sua necessidade.
Alguns consideram esse modelo de EAV um erro, eu vejo como um obra prima de engenharia de software. Alem de bem projetado, e muito organizado e sistemático, e possui uma ótima flexibilidade.
2 – Instalação, controle de versão e Magento Connect
O Magento traz soluções maravilhosas para melhorar as tarefas mais chatas dos sistemas hoje disponíveis. A instalação, Upgrades e Updates.
Subversion (SVN)
Atualmente você pode fazer um checkout do projeto usando subversion (SVN), que permite flexilidade um bom controle do desenvolvimento e avanços do projeto. Para quem usa Linux e não tem ainda o subversion, basta executar os comandos abaixo:
Vale a dica que para que instalações locais funcionem direitinho, e necessário o uso do Virtual Hosts, porem isso no apache 2 + Linux se torna pratico.
$: sudo apt-get install subversion
Confirme a instalação dos pacotes necessários, depois basta ir na sua pasta padrão do apache, no meu caso sempre fica na home, chamada sites:
$: cd ~/joaovagner/sites/;
$: mkdir magento ;
$: cd magento ;
Pronto, já possui sua pasta para o magento, basta agora fazer o checkout do projeto:
$: svn checkout http://svn.magentocommerce.com/source/branches/1.4
Pronto, já possui um branche do projeto, ou seja, ele esta pronto para rodar, agora caso queira manter uma workcopy basta fazer checkout do trunk, sempre em desenvolvimento, para isso recomendo uma criação de uma pasta para se manter organizado:
$: cd ~/joaovagner/sites/;
$: mkdir magento-trunk ;
$: cd magento-trunk;
Agora basta executar o checkout do trunk:
$: svn checkout http://svn.magentocommerce.com/source/branches/1.4-trunk
Instalação via SSH
A instalação por SSH se baseia simplesmente em comandos de download, disponivel aqui.
Abaixo os comandos necessários usando wget:
//Acesso minha pasta padrão do apache
$: cd ~/joaomedeiros/sites//Crio uma pasta para o magento
$: mkdir magento//Acesso a pasta que criei
$: cd magento//Uso wget para fazer o download dos pacotes, tanto o magento em sí como o arquivo de dados de exemplos
$: wget http://www.magentocommerce.com/downloads/assets/1.4.0.0/magento-1.4.0.0.tar.gz
$: wget http://www.magentocommerce.com/downloads/assets/1.2.0/magento-sample-data-1.2.0.tar.gz//Descompactação dos pacotes baixados
$: tar -zxvf magento-1.4.0.0.tar.gz
$: tar -zxvf magento-sample-data-1.2.0.tar.gz// Movemos as imagens de exemplo para a pasta correnta de media
$: mv magento-sample-data-1.2.0/media/* magento/media///movendo os registros no banco de exemplo para a a pasta magento
$: mv magento-sample-data-1.2.0/magento_sample_data_for_1.2.0.sql magento/data.sql
//Movendo o .htaccess para interpretação de regras personalizáveis do magento
$: mv magento/* magento/.htaccess .//Setando permissão de escritas na pasta correta, pois a instalação vai precisar
$: chmod o+w var var/.htaccess app/etc//Permissão recursiva na pasta de media de imagens de produtos do magento.
$: chmod -R o+w media//Aqui eu uso o .SQL para inserir dados de exemplo de produtos + CMS + homepage.
$: mysql -h localhost -u seuuserdobanco -psuasenha magento_database < data.sql//Atualização de pacotes e instalação do canal de upgrade e update do magento connect no pear.
$: ./pear mage-setup .
$: ./pear install magento-core/Mage_All_Latest-stable//Limpando todos os arquivos desnecessários
$: rm -rf downloader/pearlib/cache/* downloader/pearlib/download/*
$: rm -rf magento/ magento-sample-data-1.2.0/
$: rm -rf magento-1.4.0.0.tar.gz magento-sample-data-1.2.0.tar.gz data.sql
Caso esteja em um MAC OS e não possua o Wget, basta usar o CURL, uma alternativa que funciona basicamente como alternativa ao wget, basta substituir o wget por curl -O
//mesmo efeito que o wget
$: curl -O http://www.magentocommerce.com/downloads/assets/1.4.0.0/magento-1.4.0.0.tar.gz
$: curl -O http://www.magentocommerce.com/downloads/assets/1.2.0/magento-sample-data-1.2.0.tar.gz
Pronto, agora basta acessar a URL localhost e executar a instalação, claro, novamente recomendo o uso do Virtual Hosts para que isso possa fluir melhor.
Agora basta acessar, ai: http://magento.localhost/ (Interpretando que esse e seu virtual host!)
Caso você utilize Windows, pode usar o pacote Magento and Zend Server – Unified Installer e executar sua instalação no Windows com Zend Server e já um pacote do Magento. Eu nunca executei tal teste, não tenho certeza de como funciona e os passos!
Dicas e macetes em problemas de Instalações + Permissões
Como ja venho a tempos executando instalações, entendendo os processos e funcionalidades do magento, venho já armazenando e guardando alguns macetes de problemas recorrentes que enfrento, tanto em servidores conhecidos da IW2 como em terceiros, e as vezes ate localmente.
Instalação e erro 505
Comigo sempre ocorre de um upgrade ou nova instalação, ocorrer erro500, o famoso “Internal Server Error”, isso pode ser corrigido com Shell Script:
$: cd magento ;
$: find . -type d -print | xargs chmod 755
$: find . -type f -print0 | xargs -0 -n1 chmod 644
$: chmod 775 app/etc var var/.htaccess && chmod -R 775 media
Problema Resolvido
Menu Administrativo parou de funcionar! O Que eu faço?!
Esse problema ocorre devido a compilação do javascript, e simples resolver, e já e um problema frequente:
Passo 1 – Abrir o Arquivo com problema
O Arquivo que esta causando esse problema se localiza na seguinte path: app/code/core/Mage/Page/Block/Html/Head.php
Basta renomear o Head.php para head.php. No Terminal basta executar o comando mv:
$: cd magento;
$: mv pp/code/core/Mage/Page/Block/Html/Head.php app/code/core/Mage/Page/Block/Html/head.php
Passo 2 - Permissões corretas
Esses arquivos precisam de permissões corretas para que o Browser tenha o retorno necessário:
$: cd magento;
$: chmod 755 js/ ;
$: chmod 644 js/lib/ ;
$: chmod 644 js/index.php ;
Pronto, seu menu está perfeito! Seu Magento esta pronto para trabalhar!
Tags: ecommerce, frameworks, magento, varien, zend framework


Deixe seu comentário