Hoje vejo muitas lojas na plataforma Magento que por razões diversas não tiveram uma boa estruturação para a construção do seu tema e mesmo quando foi comprado um bom tema, ainda sim, encontro este erro quando personalizam ou refinam o design da loja, talvez por falta de planejamento ou por falta de conhecimento da pessoa que editou o tema. Se você já leu o Guia Básico de Design para Magento já deve estar cansado de ouvir isso, mas escrevi este artigo porque este erro é mais comum do que se imagina e é preciso bater mais uma vez nesta tecla. Sim você adivinhou, estou falando sobre alterar o tema base/default do Magento
O tema base/default é um território sagrado e não deve ser tocado, é assim que me pareceu quando entendi como funciona o sistema de fallback do Magento, eu ficava quebrando a cabeça procurando uma solução mais fácil, como copiar todos os arquivos para meu tema (se você tentar fazer isso é quase certo de dar pau) ou copiar a pasta default, mas nada adiantou, para o Magento não tem “jeitinho”, temos que estudar a sério e seguir as “boas práticas do Magento”. Depois de muito bater cabeça e testar eu cheguei a esta conclusão e estou aqui para te dizer: não perca tempo procurando macetes que não funcionam. O melhor a se fazer é começar do jeito certo, mesmo que de primeira pareça mais demorado isso vai te economizar muito mais tempo no final e com planejamento seu projeto tem muito mais chances de sucesso. Vou comentar minhas duas opções preferidas para iniciar um novo projeto de tema, talvez encontre referências semelhantes em toda internet, mas é claro que você é livre para procurar por um caminho que lhe pareça melhor.
Opção 1: tema dentro do pacote default
Não há nada de errado criar tema dentro do pacote default, que ficará parecido com app/design/frontend/default/seu_tema, inclusive ensino essa técnica para diminuir o número de arquivos a editar e deixar seu tema personalizado mais simples em “como criar um tema Magento com o mínimo de arquivos local.xml”. Desta forma você trabalha num único arquivo XML e os arquivos de template (PHTML) e de visual (imagens JavaScript e CSS). A desvantagem que vejo é quando cria-se uma variação sazonal (ex.: tema natalino) você terá que copiar mais arquivos e talvez se torne um pouco confuso gerenciar os temas já que estarão misturados com os temas padrão do Magento. Esta opção é mais indicada quando criar um tema personalizado único.
Opção 2: crie seu próprio pacote de temas
É a opção ensinada no Guia básico de design para Magento. Inicialmente parece mais complicada e neste caso eu sugiro (mas isso não é uma regra) que não se utilize do local.xml ao menos no tema default (app/design/frontend/seu_pacote/default) prefira copiar todos os arquivos XML que precisar modificar, mesmo que seja apenas uma linha para que você tenha total controle de todas as funcionalidades dentro do seu tema principal. O resultado disso é que você terá um tema com muito mais arquivos. Por outro lado pode se tornar muito mais produtivo, visto que a organização fica mais clara e a criação de temas sazonais muito mais simples. Eu indico este método para projetos grandes que abordam vários sub-temas ou temas personalizados e para lojas que exista a possibilidade de atualizações contínuas ou sazonais.
Dica bônus: use a tradução dentro do seu tema.
Eu mesmo já fiz isso no começo e paguei por este erro. Quando você instala uma tradução dentro da pasta app/locale, ela não deve ser alterada para se adequar ao seu tema. Entenda que esta tradução é baseada no tema default do Magento e alterando a tradução neste nível você pode prejudicar alguma página em uma atualização futura.
Ao invés disso se utilize de um recurso que o Magento nos disponibiliza que é a tradução dentro do tema, esta tradução é localizada em seu_tema/default/locale/pt_BR/translate.csv ou default/seu_tema/locale/pt_BR/translate.csv e neste arquivo você insere todas as traduções personalizadas referentes ao uso do seu tema. Infelizmente aqui não dará para se aprofundar muito nesta dica, pois somente esta dica já é um assunto para um novo artigo (e será).
Espero que estas dicas lhe sejam úteis em seu próximo projeto ou que possa rever ainda o planejamento de seu projeto atual, é muito importante cuidar do planejamento pois vai te evitar muita dor de cabeça no futuro.
Um abraço e até a próxima