Skip to main content

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

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *