Configurar uma loja Magento não é apenas uma questão de desenvolver extensões auto-instaláveis, mas também exige muitas operações de "entrada manual", como criar atributos de edição final, categorias, produtos, páginas CMS de regras de preços e assim por diante, sem mencionar todas as alterações na configuração do sistema.
Gostaria da sua ajuda para delinear a melhor estratégia para implantar uma loja Magento, do desenvolvimento ao ambiente de preparação e produção.
Uma estratégia minha é a de escrever um "módulo de implantação" que crie programaticamente as entidades mencionadas acima, mas é uma tarefa que consome muito tempo e, às vezes, parece-me um pouco exagerado.
Recentemente, comecei a usar o Selenium IDE para reproduzir tarefas de administrador, mas o tempo necessário para configurar todos os conjuntos de testes não está longe do mencionado acima.
Talvez uma solução ideal possa ser o uso de um módulo capaz de fazer uma captura instantânea de um sistema Magento, permitindo que você escolha o que implantar.
Assim:
- qual é a sua estratégia para implantar?
- existe um módulo capaz de fazer uma captura instantânea de um sistema Magento, permitindo que você escolha o que implantar?
- se esse módulo não existir e, desde que seja uma solução razoável, há alguém interessado em contribuir com seu desenvolvimento?
Obrigado!
Respostas:
Minha opinião é escrever tudo. Normalmente, tenho um módulo de configuração base para qualquer coisa que não esteja diretamente relacionada funcionalmente a um módulo específico. (exemplo, criar reescritas personalizadas de URL para URL anterior do site para nova URL) e adicionar qualquer coisa relacionada a um módulo em seus próprios scripts de instalação.
A mentalidade por trás disso é que, se o site precisar ser reinstalado, usando um novo banco de dados, tudo voltará como você o tinha. Isso também ajuda no fato de eu atualizar periodicamente o site uat com uma cópia do banco de dados ativo. Os módulos no uat continuam trabalhando enquanto encaixam em suas configurações novamente.
Alterações nas taxas de postagem, regras de carrinho etc. (basicamente coisas que os clientes administram a si mesmos em administração) são consideradas 'dados voláteis' e não são roteirizadas. Isso inclui dados do produto. O cliente tem a opção e é incentivado a testar novas importações no site uat primeiro.
Os clientes são instruídos a não criar atributos, mas a criar através de uma solicitação de ticket. Isso então permite que eu também colete informações sobre qual é a intenção do cliente para o atributo e, às vezes, tenho uma sugestão melhor ou posso criar um código melhor, pois mantenho quais atributos existem, além de atributos selecionáveis, para garantir que os dados sejam limpar \ limpo.
Sim, o script leva mais tempo, mas vai demorar muito mais tempo para recriar manualmente um conjunto de configurações manualmente. Também pode ser embaraçoso se você esquecer algo e fazer com que o site não funcione corretamente ou tenha um novo trabalho de desenvolvedor em um site local que esteja com algumas configurações cruciais na configuração.
fonte
Eu fiz algumas pesquisas há vários meses. Aqui estão os sites que você pode consultar.
URLs base do Magento e instalações dedesenvolvimento
/ preparaçãoMagento Development and DeploymentGuia Magit Git e fluxo de trabalho
Despejo mais rápido de um banco de dados Magento MySQL para ramificação
fonte
Gostaria de agradecer a todos, porque suas considerações me inspiraram e me levaram a desenvolver uma extensão, chamada "Mageploy", com a intenção de resolver o problema de manter diferentes ambientes em sincronia.
http://www.mageploy.com
O Mageploy ainda precisa ser estendido, bem documentado e totalmente testado, mesmo se eu já o estiver usando em alguns projetos com alguns benefícios.
É de código aberto e qualquer ajuda ou sugestão será apreciada.
Saudações
fonte
Com relação à instalação de scripts e à criação de entidades, meu sentimento geral é que, se for exigido ou esperado por um módulo, ele deverá ser criado como parte de um script de instalação.
Recentemente, em termos de desenvolvimento / estágio / produção, usamos o site de preparação como a cópia principal do banco de dados para o conteúdo, pois significa que o cliente pode colaborar. No passado, provavelmente o maior problema que encontramos foi coordenar a entrada de conteúdo com o cliente, principalmente no que diz respeito ao upload de produtos.
Como você estava pensando que o instantâneo funcionaria? Eu acho que em um mundo ideal, você teria uma ferramenta que mostrasse a diferença entre dois bancos de dados em tipos específicos (produtos, categorias, CMS, etc.) e permitiria mesclar as alterações entre si, mas não tenho conhecimento de nada disponível como este.
fonte
Na minha opinião, criar e editar atributos, categorias, produtos, regras de preço não tem nada a ver com uma "estratégia de implantação". Todos esses itens são bastante exclusivos de uma loja e, na maioria dos casos, exigem uma análise e pesquisa adequadas dos produtos que você vão vender.
Se você estiver criando lojas "tamanho único" com configuração semelhante de todos os elementos mencionados, poderá fazer uma exportação "instantânea" do seu banco de dados depois de ter feito toda a configuração necessária para cada loja.
fonte
Gostaria de adicionar duas excelentes ferramentas de economia de tempo:
fonte