2 métodos de API para acelerar suas integrações
Backend, Desenvolvimento, Magento 1
Atualizado em 16 de fevereiro de 2022
A API do Magento 1 é cheia de mistérios. Se você fez download dos exemplos de uso das APIs publicadas aqui no Magenteito, e é uma pessoa atenta, provavelmente notou que existem dois exemplos que não estão na documentação da Magento, mas existem na API Soap do Magento e permitem atualizar produtos em massa via API.
Vou abrir um parênteses aqui, e te contar um segredo (não espalha). Esta informação me foi útil tantas vezes pra mim, que tenho estes dois exemplos salvos no meu Evernote como “Métodos lindos da API Magento”. Por isso resolvi compartilhar hoje com você…
Atualização em massa de estoque via API Magento
O primeiro exemplo é o método catalogInventoryStockItemMultiUpdate. É isso mesmo. Você pode atualizar estoques em massa em uma única chamada.
<soapenv:Envelope xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:urn="urn:Magento" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <soapenv:Header/> <soapenv:Body> <urn:catalogInventoryStockItemMultiUpdate soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"> <sessionId xsi:type="xsd:string">?</sessionId> <productIds soapenc:arrayType="xsd:string[]" xsi:type="urn:ArrayOfString"/> <productData soapenc:arrayType="urn:catalogInventoryStockItemUpdateEntity[]" xsi:type="urn:catalogInventoryStockItemUpdateEntityArray"/> </urn:catalogInventoryStockItemMultiUpdate> </soapenv:Body> </soapenv:Envelope>
Você pode ver um exemplo de uso no arquivo soapcall_stock_multiupdate.php do conjunto de exemplos de uso da API.
Atualização de produtos em massa via API Magento
O outro exemplo é o catalogProductMultiUpdate. Ele permite atualizar vários produtos de uma vez só. Ou seja, não precisa ficar fazendo 100 chamadas pra atualizar 100 produtos diferentes. Você pode fazer uma chamada só.
O exemplo de uso deste método não está disponível no pacote de exemplos, mas ele existe! Acredite em mim! 🙂
<soapenv:Envelope xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:urn="urn:Magento" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <soapenv:Header/> <soapenv:Body> <urn:catalogInventoryStockItemMultiUpdate soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"> <sessionId xsi:type="xsd:string">?</sessionId> <productIds soapenc:arrayType="xsd:string[]" xsi:type="urn:ArrayOfString"/> <productData soapenc:arrayType="urn:catalogInventoryStockItemUpdateEntity[]" xsi:type="urn:catalogInventoryStockItemUpdateEntityArray"/> </urn:catalogInventoryStockItemMultiUpdate> </soapenv:Body> </soapenv:Envelope>
A sintaxe deste método é catalogProductMultiUpdate(SessionID, string productIds[], catalogProductCreateEntity[] products, string storeview, string identifier)
. Embora não seja possível especificar o código da loja para cada produto, apenas na chamada geral, isso não o torna menos útil, não é mesmo?
O primeiro parâmetro é o productIds
, que deve conter um array com os identificadores que estamos enviando (o Magento usa product_id, mas você pode usar sku se preferir).
O segundo parâmetro (catalogProductCreateEntity
) contém os dados dos produtos propriamente ditos, exatamente como você usa para criar um produto único (como mostrado no exemplo soapcall_product_create.php).
Nota do autor
Ainda que estes métodos possam reduzir em 500x o tempo de uma integração completa, use com moderação para evitar falhas. Já implementei lojas que conseguiam fazer até 1000 atualizações de estoque em uma única chamada, mas recomendo que você busque um valor menor.
Não é bacana?! Compartilha/comenta aí vai!
E se ainda assim não encontrou um método que lhe atenda, assista a seção 9 do curso criação de módulos Magento e crie a sua.
Artigos e tópicos relacionados:
- Aprenda a criar e customizar API’s do Magento na seção 9 do curso criação de módulos e desenvolvimento backend para Magento
- Artigo com os exemplos de uso da API Magento mencionados acima
- Criando endpoints na API do Magento 2 (por Rafael)
- PagSeguro (PagBank) para Magento 1 recebe a Nova Geração - 9 de abril de 2024
- Recorrência no WooCommerce Sem Plugins Pagos - 28 de janeiro de 2024
- Chargeback. O que é, e como se livrar deles. - 19 de dezembro de 2023
Deixe seu comentário
[fbcomments url="https://www.magenteiro.com/blog/magento-1/acelerando-integracao-com-api-magento/"]