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.
Como 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.
Depois 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:
- 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:
- 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.
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.