Como resolver os problemas no Magento?

Sim, já sabemos que o Magento dá problemas. Vários problemas. Mas não é assim que tem que ser, não é assim que precisa ser. Há alguma forma de resolver os problemas no Magento? Sim, há. Mais do que isso, há formas de evitar que os problemas aconteçam e infelizmente, isso não costuma ser seguido. Esse aqui não é um guia para resolver 100% dos problemas do Magento (e nem mesmo 99% dos problemas, como publiquei há alguns anos), mas pode ser de grande ajuda para você que tem uma loja Magento.

Solução dos problemas no Magento - imagem: Mood Board

Evitando que os problemas aconteçam

Antes, vamos aos pontos a serem seguidos para evitar que os problemas aconteçam:

  • estruture sua loja antes de começar o desenvolvimento: procure pensar em todos os requisitos e em tudo que você precisará antes de começar a instalação e configuração da loja, bem como a compra do tema e a instalação de módulos adicionais. Isso é importante para que você tenha o mínimo de elementos necessários e evite ter instalado módulos que mexeram com as configurações – e colocaram tabelas ou dados inúteis no banco de dados – para simplesmente serem desinstalados ou desligados.
  • muito cuidado ao retirar ou desligar módulos: uma vez instalados, eles ficam registrados no sistema e podem (eu disse podem, não que vão) interferir em outras operações, causando erros inexplicáveis.
  • invista em um bom servidor: a maior causa de problemas são servidores mal dimensionados ou inseguros, especialmente os compartilhados. Uma VPS não é tão cara assim que não justifique o investimento, mesmo em tempos de dólar alto. Quanto mais produtos você tiver e mais visitas diárias/simultâneas sua loja receber, maiores os recursos necessários.
  • ainda na linha do servidor, mantenha as pastas com as permissões adequadas e apenas os arquivos necessários: não abra permissões de escrita e execução para todas as pastas e não fique deixando arquivos desnecessários na raiz ou pelo sistema.
  • verifique os módulos que serão instalados e como foram desenvolvidos: isso é um trabalho conjunto entre lojista e desenvolvedor. O Magento Connect está cheio de módulos de todos os tipos e para todos os usos, mas muitos deles são mal escritos e com alto potencial de problemas. Veja os comentários de outros usuários e se possível, revise o código em busca de erros de construção e scripts maliciosos.
  • durante o desenvolvimento, invista em uma loja “error-free”: isso inclui a instalação, os módulos e o tema. Sua loja tem que ser entregue sem erros, pois pequenos erros no começo se transformarão em grandes erros no futuro. Utilize o Element Inspector e verifique os logs na hora da entrada em produção. Aliás, verifique isso sempre, ao menos uma vez por mês.
  • não atualize o Magento automaticamente: acredite em mim, isso não funciona. É preciso verificar a atualização antes, para identificar possíveis conflitos, corrigi-los e só depois proceder à atualização manual.
  • não leve muito tempo para atualizar a versão: mesmo com o Magento na versão 1.9, ainda é possível trabalhar com uma 1.8 ou até mesmo com uma 1.7 (desde que aplicadas as recentes correções de segurança) mas se você ainda está com uma versão 1.4 ou 1.5, está procurando problemas. Se você utiliza a 1.3, esqueça, é melhor fazer uma loja nova.
  • por último, tenha sempre um backup à mão: e não é o backup nativo do Magento. Faça um backup via servidor e tenha ferramentas como um backup no Dropbox (o Plesk tem isso de graça).

Depois que o problema aconteceu

Uma vez que o problema já aconteceu, a primeira regra é não se desesperar. Cabeça quente não vai resolver nada. Lembre-se sempre de limpar caches, reconstruir índices e sair e entrar novamente no painel. Essas simples ações podem resolver a maioria dos problemas. Se isso não der resultado, esses tópicos podem ajudá-lo:

  • vá atrás dos logs: o Magento concentra os logs na pasta /var/log. Além disso, você pode buscar os logs do próprio servidor; verifique o caminho conforme o sistema operacional usado.
  • pense em que alterações foram feitas nos últimos dias: um módulo defeituoso pode ter quebrado algo na outra ponta do Magento e você não se deu conta. Desative esse módulo, alterando o arquivo correspondente na pasta /app/etc/modules (colocando a flag <active> como false ou excluindo o XML – renomeá-lo não vai adiantar). Veja se o problema é resolvido. Se sim, você deverá fazer uma investigação. Se você tiver instalado mais de um módulo, desligue todos eles e depois ligue um por vez, até identificar o problema.
  • um erro comum é o arquivo maintenance.flag, do Magento Connect: quando o Connect está instalando ou atualizando um módulo, ele coloca um arquivo chamado maintenance.flag na raiz do site. Se ocorre algum erro no processo, o Magento simplesmente deixa o arquivo lá e a loja não funciona, retornando um erro. Basta excluir esse arquivo e sua loja voltará a funcionar.
  • verifique com seu provedor se não houve nenhuma alteração ou atualização do sistema: às vezes, algum serviço requerido pelo Magento foi desligado e você deverá ligá-lo novamente.

Sim, infelizmente, a lista de ações a tomar antes do problema acontecer é maior que a lista de ações depois que o problema aconteceu. Se não conseguir resolver, tente recuperar o backup e faça uma investigação para avaliar as possíveis causas. Ainda há duas coisas que posso comentar antes de encerrar esse post:

  • o Magento não coloca o erro na tela: portanto, não adianta você buscar no Google pelo código de erro que ele exibe pois você não encontrará nada. É preciso entrar na pasta /var/report, em sua instalação e abrir o arquivo identificado pelo número do erro. Ali há a explicação – muitas vezes incompreensível para os leigos – do que causou o erro e a primeira pista para buscar a solução.
  • se você é leigo, contrate quem sabe como resolver: atendo muitas pessoas que me escrevem dizendo que estão com tal erro no Magento e que querem saber como resolvê-lo. Minha resposta é padrão. Não posso explicar como resolver o erro sem investigá-lo. Investigar o erro toma tempo e tempo é dinheiro. Além disso, não há como resolver um problema sem ter certeza de que ele foi isolado e isso pode demorar muito mais do que o previsto. Ainda que o senso de comunidade e companheirismo impere por aqui, estamos em um mercado e as pessoas precisam comer e pagar contas. Portanto, pense que vale muito mais a pena investir em prevenção para que os problemas não aconteçam e sejam resolvidos de maneira fácil. Sairá muito mais barato e seus clientes vão lhe agradecer por isso.

Módulos no Magento 2

Esse post é uma reprodução do Apêndice A do livro “Módulos para Magento”. Se você quiser saber mais sobre o livro, visite a página aqui no blog.

Magento 2 - imagem: Imagine 2014/reprodução

Pouco a pouco o Magento 2 deixa de ser uma incógnita e finalmente dá os primeiros passos para ser lançado oficialmente. Quando a plataforma estará estável para ser utilizada em larga escala, ainda não podemos dizer. O cronograma oficial da Magento Inc. diz que a versão estável sai no último trimestre de 2015. Se eles cumprirão esse prazo, é impossível saber mas você já pode começar a se preparar para a transição.

O Magento 2 terá algumas modificações estruturais em relação a seu antecessor, o que significa que diversas coisas devem ser feitas de modo diferente. Os módulos desenvolvidos para o Magento 1 não funcionarão no Magento 2, já que a própria estrutura de pastas foi substancialmente alterada.

1) O que mudará no Magento 2

A documentação do Magento 2 traz uma seção informando o que mudou na plataforma. Se nos basearmos apenas nessa documentação, acrediaríamos que as mudanças não são muito extensas, sendo constituídas apenas por novidades já conhecidas desde o início do desenvolvimento, em 2010:

  • O PHP 5.4.11 passa a ser a versão mínima para sua utilização, com suporte ao PHP 5.3.
  • O Magento passa a requerer a versão 6 do MySQL.
  • Suporte a HTML5, com tema nativo já responsivo, e adoção do CSS3, com suporte a Sass e Compass.
  • Adoção do jQuery como biblioteca nativa de comportamentos Javascript, além do RequireJS.
  • PSR Compliance.
  • Inclusão de framework de testes.

Mas a realidade é um pouco mais complicada. É possível afirmar que tudo mudou, da organização dos arquivos à construção dos códigos. Quem está acostumado a trabalhar com o Magento 1 e começa a navegar pelas pastas da nova versão, tem uma sensação já conhecida, a mesma de quando começou a trabalhar com a plataforma: onde estão as coisas e como me oriento nessas pastas?

Você só conseguirá pegar o jeito se navegar pelos arquivos da plataforma e literalmente caçar onde as coisas foram colocadas. Em linhas gerais, as principais mudanças no que se refere aos módulos para Magento 2 são:

  • Não existem mais os codePools, ou seja, core, community e local. Agora, os módulos são colocados em pastas organizadas por desenvolvedores, isto é, por seus Namespaces, ainda que sigam a mesma precedência.
  • A pasta /app/etc/modules foi descontinuada. As configurações dos módulos ficam dentro da pasta /etc do próprio módulo, em um arquivo module.xml. Da mesma forma, os arquivos XML de configurações diversas tiveram seus nomes e estruturas alterados.
  • Os arquivos do tema passam a fazer parte da pasta do módulo. Ali, você cria um diretório com o nome view/[area], como por exemplo view/adminhtml ou view/frontend e dentro dele coloca as pastas layout, template e web, onde ficarão seus arquivos.
  • A estrutura das classes também mudou. Ela fica muito mais simples em um padrão como class Payment extends \Magento\Payment\Model\Method\Cc. Dentro das classes nativas do Magento, há diversas alterações e você deve verificar sempre que for trabalhar com uma nova classe.

2) Como portar seus módulos para o Magento 2

Essa é uma pergunta difícil de ser respondida e infelizmente, as perspectivas não são boas. Creio que seja realmente complicado escrever um conversor automático de módulos escritos para a primeira versão do Magento que os reconstrua diretamente na nova versão sem erros.

As mudanças de estrutura são grandes e os itens a serem alterados estão por todo o código. Mesmo presumindo que a parte estrutural siga um padrão que pode ser reescrito automaticamente, as funções sofreram modificações e pequenas mudanças já fariam com que o código perdesse sua funcionalidade e você ficasse preso em uma ciranda de erros.

A melhor abordagem nesse caso é reescrever seu código especialmente para o Magento 2. Seria o mais prático e seguro a fazer, ainda que o mais trabalhoso. Você já tem a estrutura de seu módulo e sabe o que ele faz, como se comporta, quais as saídas esperadas. Basta pegar cada uma das funções e configurações e reescrevê-las no padrão do Magento 2. Pela forma como a situação se desenha, é a única maneira segura de garantir que seu módulo continuará funcionando bem.

3) Transição entre as versões 1 e 2 do Magento

Durante esse livro, falamos algumas vezes do Magento 2 e das dificuldades para o seu lançamento em caráter oficial. Quando se diz caráter oficial, quer se dizer que a plataforma está pronta e com os requisitos mínimos de estabilidade para ser utilizada em um ambiente em produção. Se admitirmos que durante o ano de 2015, o Magento 2 atinja a estabilidade e possa ser finalmente utilizado em lojas ao redor do mundo, como você deve se comportar em relação à transição do Magento 1 para o Magento 2?

A primeira coisa a se ter em mente é: você não deve adotar o Magento 2 em projetos de responsabilidade logo de saída. Por mais tentador que seja e por mais que o cliente acredite que ele jogará dinheiro fora se adotar uma plataforma mais antiga, os riscos de se utilizar o Magento 2 nos primeiros meses de lançamento é grande, ao menos para projetos de responsabilidade.

Por mais que a plataforma tenha sido testada e avaliada, os três primeiros meses são cruciais e muitas atualizações devem ser lançadas. É possível até mesmo que nesse período descubram algo que precise ser reconstruído, por não ter funcionado como o esperado.

Adicionalmente a essa questão da estabilidade, a oferta de módulos e temas ainda será pequena – lembre-se que o Magento 1 levou quase 3 anos para chegar a um volume interessante de módulos e os temas comerciais só viraram realidade de dois anos para cá. Tudo o que você precisar de recursos extras nos primeiros meses deverá ser desenvolvido do zero, já que a maioria dos desenvolvedores está aguardando o lançamento oficial para portar seus módulos.

Reconheço que há a possibilidade de que, agora que o Magento 2 começa a virar realidade, os desenvolvedores de módulos foquem na conversão de seus módulos e os lancem em um prazo mais curto. Ainda assim, teremos a questão dos testes em ambientes reais, não nos ambientes controlados dos desenvolvedores.

Você pode passar a adotar o Magento 2 para novas lojas de pequeno porte, em que pequenos erros não serão tão graves como em lojas novas de maior porte ou lojas já existentes de qualquer porte. Um detalhe não pode ser esquecido: é preciso que o cliente tenha total consciência de que o Magento 2 é um produto novo e que ainda está em testes, que ele provavelmente terá a mesma estabilidade que seu antecessor e que em poucos meses a oferta de módulos será similar.

Quanto ao Magento 1, ele ainda será encontrado no mercado por muitos anos, até que esse passivo seja totalmente migrado para o novo Magento 2. Essas mesmas lojas que ainda forem feitas em Magento 1 poderão receber suporte por muitos anos, já que isso depende muito mais do desenvolvedor do que da Magento Inc. propriamente dita.

Distribuindo seu módulo no Magento Connect

Esse post é uma reprodução do Apêndice A do livro “Módulos para Magento”. Se você quiser saber mais sobre o livro, visite a página aqui no blog.

Depois de ter construído seu módulo, você pode querer distribui-lo via Magento Connect, o serviço da Magento que reúne módulos de desenvolvedores e empresas de desenvolvimento ao redor do mundo e que normalmente é a primeira opção quando buscamos novos módulos para uma loja virtual.

O processo não é complicado embora seja um pouco trabalhoso. Para incluir seu módulo no Magento Connect, é preciso empacotá-lo, cadastrar uma conta no site do Magento (que você provavelmente já possui), criar um perfil para o módulo e incluir o arquivo.

1) Empacotando seu módulo

Para empacotar o módulo, você deve usar uma função do próprio Magento, presente em Sistema > Magento Connect > Criar Extensão. Essa é uma ferramenta que reunirá os arquivos de seu módulo e preparará o pacote para o Magento Connect. É claro que seu módulo deve estar instalado e funcionando perfeitamente, com os arquivos no lugar.

Ao acessar essa página, você verá uma tela como a seguir, com as abas a serem preenchidas, com as informações do módulo.

Tela de criação no Magento Connect - imagem: reproduçãoComo você vê, a criação de um novo módulo tem seis abas na lateral. Não entraremos em detalhes sobre cada uma delas, mas basicamente, você terá que completar as seguintes ações em cada uma delas:

  • aba Package Info – informar o nome do módulo, o canal (normalmente community), as versões suportadas pelo módulo, uma descrição curta e uma descrição completa. Ainda deve preencher a licença, com a URL.
  • aba Release Info – nessa aba, você deverá informar a versão do módulo, sua estabilidade (entre development, alpha, beta e stable) e notas da versão.
  • aba Authors – a aba Autores traz as informações sobre os desenvolvedores do módulo. Você deve informar o nome, o usuário e o e-mail cadastrado no site do Magento.
  • aba Dependencies – três campos são definidos nessa aba: versão do PHP, pacotes e extensões, mostrando quais os requisitos necessários para instalar essa versão do módulo.
  • aba Contents – essa aba é importante e veremos em detalhes a seguir.
  • aba Load Local Package – se você tiver pacotes de extensões nessa instalação, elas serão listadas aqui e você poderá importá-las para seu módulo.

A aba Contents é a aba onde você informa todos os caminhos para seus arquivos e portanto precisa ser preenchida com cuidado. Ao clicar nela, você deve abrir uma nova linha para cada caminho desejado, entre os listados abaixo.

  • Local module file – é o caminho dentro da pasta /app/code/local.
  • Community module file – onde você deve informar o caminho dentro da pasta /app/code/community.
  • Core team module file – referente ao /app/code/core.
  • User Interface – são os caminhos onde são encontrados os arquivos do tema, em relação à pasta /app/design.
  • Global configuration – a configuração global do módulo, em /app/etc.
  • PHP Library file – refere-se à pasta /lib.
  • Locale language file – são os arquivos com os pacotes de idiomas, na pasta /app/locale.
  • Media library – são os arquivos de mídia, em /media.
  • Theme Skin – assim como indicado no design, esse caminho informa onde estão os arquivos do skin, em /skin.
  • Outros arquivos a empacotar – onde você deve informar os caminhos para outras pastas que devem ser incluídas, em relação à /.
  • Testes – para incluir os testes do módulo, referindo-se à pasta /tests.
  • Outros – para quaisquer outros arquivos, a partir da raiz /.

Dessa forma, você repete o procedimento para cada uma das pastas ou arquivos únicos de seu módulo. Como você vê abaixo, o pacote para o módulo LivroMagento_PaymentCard inclui apenas três caminhos de arquivos, já que é um módulo bem simples:

  • Arquivos do código – informando onde estão os arquivos do código do módulo, isto é, a pasta /LivroMagento/PaymentCard/, dentro de /app/code/community. Foi selecionada a opção de Diretório Recursivo, para incluir todos os arquivos dessa pasta.
  • Arquivos do tema – esse módulo utiliza alguns arquivos de template e portanto informamos a pasta /frontend/default/default/template/livromagento/ e da mesma forma selecionamos Diretório Recursivo.
  • Arquivo de configuração do módulo – informando o caminho para o arquivo XML de definição do módulo em /modules/LivroMagento_PaymentCard.xml. Nesse caso, a opção selecionada foi Arquivo, já que se trata de um único arquivo a incluir.

Inclusão dos Arquivos no Pacote - imagem: reproduçãoDepois que você preencher todos os campos, é possível clicar em Salvar Dados e Criar Pacote. Essa ação fará com que seu pacote seja criado e colocado na pasta /var/connect em sua instalação Magento.

2) Módulos gratuitos versus módulos pagos

Você já sabe que poderá escolher entre distribuir seus módulos gratuitamente ou cobrar por eles. Você não poderá vendê-los diretamente no Magento Connect, mas essa decisão tem relação direta com a forma que seu módulo será oferecido no marketplace de módulos para Magento.

Antes de saber como isso funciona, é interessante você ter em mente como são as relações entre desenvolvedores de módulos e compradores de módulos. Há uma grande oferta de módulos gratuitos de modo que o valor cobrado é diretamente proporcional a quanto o seu módulo é único, o quanto suas funções são necessárias e o quanto você está disposto a dar de suporte a seu cliente.

Se seu módulo não oferece nada de novo e você não conseguirá dar um suporte de qualidade, não adianta querer cobrar por sua venda. Nesse momento, é certo que vale mais a pena distribui-lo gratuitamente e utilizar essa experiência para ajudar as pessoas, angariar seguidores e contar pontos em futuras entrevistas de emprego.

Já se seu módulo é realmente especial e você conseguirá dar um atendimento profissional ao seu cliente, é perfeitamente válido cobrar um valor (baixo ou alto) por seu módulo. Você ainda pode cobrar por serviços de instalação e por suporte mensal, independente do módulo ser pago ou gratuito.

Em relação ao Magento Connect, a dinâmica é simples:

  • se o módulo é gratuito, ele ficará disponível diretamente no Magento Connect, podendo ser instalado através dele, com o método convencional de obter a chave, copiar e colar no instalador do Magento.
  • se o módulo for pago, ele ainda fica visível no Magento Connect, porém não pode ser instalado diretamente por ele. Para obter os arquivos, o visitante deverá clicar no link fornecido, visitar seu site, proceder à compra e pagamento e só então obter os arquivos, da forma como você achar melhor.

3) Criando perfil no Connect

O próximo passo é criar seu perfil no Magento Connect. Para isso, você precisará de uma conta no Magento Commerce – que provavelmente já possui, quando se inscreveu para fazer o download do software. Se ainda não criou sua conta, acesse o site do Magento e faça seu cadastro.

Uma vez logado em sua conta, busque a aba Developers, no menu lateral esquerdo na página inicial de seu perfil. Na primeira vez que você acessa essa aba, você deve ler o termo de adesão, rolando o conteúdo até o final, e concordar com ele, clicando em I agree. A partir daí, você tem acesso à página de gerenciamento de suas extensões (que ainda deve estar vazia).

Para adicionar sua nova extensão, clique em Add New Extension, no menu lateral esquerdo. Você será apresentado a uma tela como a mostrada, onde deverá preencher os seguintes itens:

Cadastro do módulo no Connect - imagem: reprodução

  • Extension Title – é o nome de seu módulo.
  • Brief Description – a descrição curta de seu módulo, limitada a 110 caracteres, em texto puro.
  • Detail Description – a descrição completa do módulo, podendo aceitar HTML e que será exibida na página do Magento Connect.
  • Extension Categories – onde você marca as categorias em que seu módulo será listado.
  • Extension Locale – marque os idiomas que foram incluídos no módulo.
  • Extension Icon – com dois campos (label e icon), onde você deve informar o rótulo e o arquivo de imagem que serão utilizados para identificar seu módulo no Magento Connect.

Depois disso, você deve preencher as informações relativas ao módulo a ser instalado na Community Edition. Estranhamente, os campos só são habilitados depois que você marca ao menos uma das opções de versão na lista indicada.

  • Is Free? – indica se o módulo é gratuito ou não.
  • Versions – marque cada uma das versões no qual o módulo foi testado com sucesso.
  • License Type – escolha a licença sob o qual seu módulo será distribuído, lembrando-se de informar a mesma licença definida na construção do pacote.
  • License Name e License URL – os campos serão preenchidos automaticamente a partir da escolha do tipo de licença no campo anterior.

Caso você não marque o campo Is Free, indicando que seu módulo é pago, mais três campos deverão ser preenchidos:

  • Landing URL – a página de destino do visitante, ao clicar no botão Obter Extensão, na página do módulo no Magento Connect.
  • Price – indique o preço do módulo.
  • Currency – indique a moeda em que o preço será cadastrado. São aceitos apenas o euro e o dólar como moedas.

Feito isso, clique em Save para ir para o próximo passo, onde seu módulo está na lista, mas ainda não tem os arquivos necessários para ser disponibilizado.

4) Como fazer o upload de sua extensão

Uma vez registrada a extensão no Magento Connect, você precisa subir os arquivos de seu pacote, para que ela possa ser disponibilizada aos usuários. Para isso, visite novamente a página Add New Extension e clique em Edit, em sua nova extensão.

Uma nova tela é aberta, com três abas: Edit Extension, para editar os dados e informações do módulo; Screenshots, para subir os arquivos com as capturas de tela do módulo e Versions, para enviar os arquivos, conforme suas versões. Ao clicar na aba Versions e depois em Add New Version, você tem uma imagem como a seguir e poderá preencher os seguintes dados:

Upload de uma nova versão - imagem: reprodução

  • Version Number – é o número de versão de seu módulo.
  • Version Stability – indica qual a estabilidade da versão, entre Development, Alpha, Beta e Stable.
  • Release Notes Title – título para a sequência de notas de release.
  • Release Notes – texto indicando as principais alterações que foram feitas nessa nova versão, de modo a orientar os usuários do módulo.
  • Show on Frontend – se o módulo estará visível para o público.

Preenchidos esses campos, basta clicar em Continue to Upload para ter acesso à tela de envio do arquivo da versão. Selecione o arquivo do módulo (aquele encontrado na pasta /var/connect de sua instalação Magento) e clique em Upload and Save para enviar o módulo para o servidor.

NOTA: se você encontrar um erro, dizendo que houve uma falha ao enviar o arquivo para o Magento Connect 1.0, não se preocupe, pois não é um erro real. Ele está apenas informando que você não enviou o arquivo para essa versão do Connect, usada nas versões anteriores ao Magento CE 1.5.

Há um último passo antes que a publicação de seu módulo seja finalizada. Como mostrado, você deve voltar à tela de listagem de seus módulos e localizar o módulo que você está incluindo. Aí, basta clicar em Submit para submeter o módulo à aprovação.

Submetendo seu módulo - imagem: reprodução

Uma vez avaliado, seu módulo poderá ter quatro status:

  • Submetido – indica que seu módulo foi submetido e está sob avaliação.
  • Reprovado – indica que seu módulo não foi aprovado e você receberá um e-mail com os motivos para a recusa.
  • Publicado – ao atingir o status de publicado, o módulo foi aprovado e está disponível no Magento Connect.
  • Offline – significa que o módulo não está disponível no Magento Connect mas que pode ser publicado.

5) Atualizações e suporte

Antes de fechar essa seção, uma recomendação para você que pretende publicar seus módulos no Magento Connect: lembre-se que você é responsável pelo que publica. Ainda que você tenha feito um trabalho acadêmico em suas horas vagas ou que esteja apenas compartilhando algo que fez para uma loja específica, não abandone seus módulos.

Ao postar um módulo no Connect, você deve estar disposto a dar um mínimo de manutenção, já que muitas pessoas passarão a depender do seu trabalho. Ainda que não ganhe um real com isso, encare como uma devolução à comunidade por ter recebido um código completo como o Magento sem precisar pagar por isso. Pense também que é uma vitrine para seu trabalho e que isso é bem visto por futuros clientes e empregadores.

Se você sabe que seu módulo tem problemas em determinados ambientes, informe isso na descrição. Monte também uma espécie de tira-dúvidas, com as principais falhas encontradas e oriente os outros desenvolvedores e lojistas de como sair dessas armadilhas involuntárias. Você não precisa dar o seu trabalho pura e simplesmente para os outros, sem cobrar nada, mas distribuir seu módulo com uma estrutura mínima e com uma boa lista de perguntas frequentes ajudará os usuários e evitará dores de cabeça para você mesmo.

Por último, avalie a possibilidade de dar suporte pago a seus usuários. O módulo pode ser distribuído de graça mas você pode cobrar por instalações, correções e customizações. É uma chance de uma renda extra para você e uma contribuição adicional para a comunidade.

Tabela com os arquivos de layout do Magento

Esse post é uma reprodução do Apêndice B do livro “Temas Magento”. Se você quiser saber mais sobre o livro, visite a página aqui no blog.
organizando as coisas - imagem: Robert Nicholas/OJO Images

O Magento traz uma série de arquivos XML em seu layout e isso deixa bastante gente confusa. A estrutura, como mostro no livro Temas em Magento, não é complicada mas o excesso de informações às vezes atrapalha. Nesse post, mostro uma tabela com os arquivos XML presentes no layout do Magento, na Community Edition 1.8 e acrescento uma descrição curta de sua finalidade.

Continue reading “Tabela com os arquivos de layout do Magento”

Roteiro simplificado para desenvolvimento de um tema em Magento

Esse post é uma reprodução do Apêndice A do livro “Temas Magento”. Se você quiser saber mais sobre o livro, visite a página aqui no blog.

O desenvolvimento de um tema para Magento não tem um único caminho possível: você pode começar pelo Skin e depois ir para o Template e retornar ao Layout ou começar pelo Layout, ir para o Skin e depois para o Template e ainda definir áreas de trabalho, trabalhando nas três partes do tema simultaneamente, uma página de cada vez.

planejando um tema de Magento - imagem: David Malan/Digital Vision

Como comentado ao longo deste livro, para facilitar o aprendizado, começamos pelo Skin, passamos pelo Layout e terminamos no Template, mas essa não é a melhor ordem para o desenvolvimento. Agora que você já conhece as três áreas, é possível propor esse roteiro simplificado para o desenvolvimento de um tema, desde a construção do design até a aplicação da tradução.

Continue reading “Roteiro simplificado para desenvolvimento de um tema em Magento”

Catálogo para lojas em desenvolvimento

Para fazer o download do catálogo exemplo, vá até o final do post.peças de Lego - imagem: L. Ancheles/Getty ImagesQuando você está desenvolvendo uma loja Magento, há uma série de páginas a ajustar e testar. Você pode usar os dados de exemplo do Magento, mas eu não gosto deles, por mexerem demais com o sistema, já que o propósito desses dados é mostrar os potenciais da plataforma e como o nome diz, servir de exemplo para quem está começando no Magento.

Continue reading “Catálogo para lojas em desenvolvimento”