Acessando API do magento para listagem de categorias

Um dos ultimos serviços que realizei, foi criar um script de listagem das categorias existentes em uma loja. Para realizar a tarefa eu usei a API do Magento, com acesso SOAP.

A parte boa desse tipo de serviço, é que eles são práticos e não requerem login e senha do cliente (que normalmente tem receio em fornecer suas senhas). Basta que o cliente crie um usuário para você  em “Sistema” -> “Compartilhar recursos” e deêm permissão de API. Tem que criar o nível de acesso e o usuário de acesso vinculado ao nível criado.

Os códigos da API são bem simples. Confesso que quase desisti de criar esse post, por tão simples que era o código, mas eu vi tanta gente em forum perguntando, que resolvi criar! Eu gastei mais tempo fazendo a função recursiva pra ler e exibir todas as categorias em modelo de árvore, do que fazendo a conexão para API da loja magento. IMPORTANTE!!! o Soap tem que estar habilitado em AMBOS os servidores (que podem ser o mesmo, mas não era meu caso).

Essa é a UNICA chamada do meu código:

$client->call($sessionId, 'catalog_category.tree');

Nessa função, eu já estou retornando em formato de árvore todas as categorias. Acho importante eu mostrar minha função recursiva também, para exibir isso no html.

function montarArvore($item){
foreach($item as $it){
if(count($it['children'])>0){
echo "<li><span class='folder'>".$it['category_id']." - ".$it['name']."</span>\n";
echo '<ul>';
montarArvore($it['children']);
echo '</ul></li>';
} else {
echo "<li><span class='file'>".$it['category_id']." - ".$it['name']."</span></li>\n";
}
}
}

Essa função serve apara montar as categorias em listagem , mostrando ela com seus respectivos filhos.

Ela só deve ser chamada uma vez no código.

Sua chamada seria:

montarArvore($attributes['children']);

Anúncios

One response to this post.

  1. Mariana td bem? Tenho a seguinte dúvida. Eu já tinha construído api’s customizadas para magento em um determinado site. Então tive que trocar de domínio, logo copiei minhas api’s personalizadas para a pasta local e os xmls dos módulos dentro de etc.
    Porém não estou conseguindo utilizá-las, estou recebendo a seguinte mensagem: “Resource path is not callable.” Já limpei o cache mais de mil vezes, apaguei o conteúdo do cache armazenado na pasta var/cache e nada das minhas api’s serem reconhecidas. Não sei mais o q fazer sério mesmo rs. Abraços e no que puder ajudar ficarei grato!

    Responder

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google

Você está comentando utilizando sua conta Google. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s

%d blogueiros gostam disto: