Skip to main content

Criando Extensão no Magento Connect

Como a maioria deve saber o Magento é uma ferramenta de código fonte aberta (open-source), e isso possibilita que desenvolvedores criem extensões para o sistema. Seja para melhorar algum recurso nativo ou para disponibilizar novas funcionalidades.

Por conta disso a Varien (empresa que criou o Magento) disponibilizou uma área online para organizar e disponibilizar estes recursos, chamado de Magento Connect. Então se você criou uma extensão e deseja disponibilizar a toda comunidade, seja na forma gratuita ou paga, você pode fazê-lo de duas maneiras.

A forma mais completa seria pelo backend da sua loja, em Sistema -> Magento Connect -> Criar Extensão. Diversas opções de configuração estarão disponíveis nesse quadro.

Outra forma seria pelo próprio site do Magento usando sua conta de membro, no alto da página ao fazer o login seu nome de usuário apresenta um menu com a opção “My Account“.

Ao clicar ali você terá um menu de opções, dentre eles a opção Magento Connect -> Add new extension e Manage extensions caso você já tenha enviado alguma extensão.

criar ou gerenciar extensões

Primeiro passo é informar o tipo de extensão que você deseja enviar, se será comunitária (grátis) ou paga. Você pode futuramente converter sua extensão free para paga editando as informações de extensão.

informações de extensão

Informe um título que identifique sua extensão, o nome será sugerido com base no título que você informou. Lembrando que a palavra-chave “Magento” não poderá ser usada.

configurando extensão

Dando continuidade as informações da sua extensão, informe o tipo de licença, a compatibilidade de versões, as palavras-chaves que identificam sua extensão, a que categoria pertence e em que idioma ela estará disponível.

E por fim, anexe o pacote zipado para upload dos arquivos.

salvando extensão

No final da página você ainda pode ter um preview de como será exibida a sua extensão depois de aprovada. Clique em salvar e aguarde a aprovação da equipe do Magento.

Dica: Ao salvar, o Magento gera um arquivo xml com informações da sua extensão, caso falte alguma informação ou se verifique alguma inconsistência e/ou incompatibilidade, um erro de package.xml será exibido.

Esse assunto não se resume nesse post, ainda há muito a ser falado sobre a criação de extensões para Magento.

Sucesso!

WebServices – Compartilhando Recursos

Um recurso avançado e poderoso do Magento é a possibilidade de se trabalhar com WebServices, ou seja, compartilhar recursos do sistema através de API‘s que geram saídas em XML, geralmente utilizando a tecnologia de comunicação SOAP.

Eu sei, uma sopa de letrinhas de confundir qualquer um. Mas leia com atenção para entender do que se trata, pois vale a pena conhecer este recurso avançado da ferramenta.

Imagine que você precise ler informações da sua loja em outro sistema, por exemplo um software de ERP, CRM, SAP, CMS ou até mesmo uma aplicação personalizada criada sob medida para você.

Nestes casos o Magento Ecommerce oferece algumas API’s prontas para dividir informações com outros sistemas. Como informações de clientes, pedidos, endereços, grupos, categorias, produtos, etc, etc, etc. Nos casos em que não existirem você pode criar uma API personalizada também, mas isso é uma outra história.

Vejamos um exemplo simples e rápido de como recuperar uma lista de email dos clientes cadastrados na sua loja usando um “programinha” escrito em php.

Dica: Aqui foi usado PHP, mas na verdade poderia ser em qualquer linguagem que tenha por exemplo suporte a SOAP (todas?!).

Primeiro passo, vá em Sistema -> Compartilhar Recursos -> Nível de Acesso e crie um nível de permissão de acesso, por exemplo, escolhendo apenas API de clientes, assim o sistema externo poderá acessar apenas as informações dos clientes.

criar nivel de acesso

Nota: Quando eu digo acesso, quero dizer “controle total”, ou seja, incluir, alterar, apagar e pesquisar. Mas isso também pode ser configurado.

Depois de criar um nível de acesso, vá em Sistema -> Compartilhar Recursos -> Usuários e crie um usuário para acessar as informações do seu sistema via webservice.

usuario webservice

Basicamente você vai informar o grupo de permissões a que esse usuário tem acesso, informar um login de acesso e a chave de API que na verdade é a senha de acesso.

Essa foi a parte difícil. Agora basta criar no seu sistema uma comunicação do tipo SOAP para acessar os dados do sistema. Veja o exemplo do arquivo abaixo, chamado de teste.php:

[php]<?php
$proxy = new SoapClient(‘http://localhost/magento/api/soap/?wsdl’);
$sessionId = $proxy->login(‘mariosam’, ‘senha123′);

$result = $proxy->call($sessionId, ‘customer.list’, array(‘filters’, ‘*’));

foreach ( $result as $obj ) {
echo $obj[“email”];
}
?>[/php]

Veja como é simples, primeiro você cria a conexão SOAP com seu sistema, logo em seguida informa o login e senha. Depois faz uma consulta na lista de clientes e por último exibe os resultados encontrados.

A url informada em “new SoapClient” deve ser a URL da sua loja, algo como www.seu-site.com.br/api/soap/?wsdl, basta digitar isso no seu navegador, se aparecer um arquivo XML válido então a URL está correta.

O arquivo teste.php deve estar em um servidor web válido, se você colocar no seu diretório root, então vai acessar digitando: www.seu-site.com.br/teste.php

E está feito a conexão, uma lista de emails deve aparecer na tela. Agora use as informações com moderação.

Veja mais informações sobre webservices-api na documentação oficial do Magento em www.magentocommerce.com/wiki/doc/webservices-api/api