Exportar produtos do Shopify para ficheiro CSV
A Shopify é uma plataforma de comércio eletrónico extremamente popular, utilizada por empresas de retalho de todos os tamanhos. Embora a Shopify ofereça ferramentas fáceis de usar para configurar e gerir uma loja online, a gestão da grande quantidade de dados que ocorrem nos bastidores, como catálogos de produtos, informações dos clientes, registos de encomendas e inventário, pode rapidamente tornar-se complexa.
As empresas frequentemente precisam integrar os dados do Shopify com bases de dados internas, sistemas ERP, sistemas de gestão de relacionamento com o cliente (CRM), data warehouses ou outras plataformas, para otimizar as operações, realizar análises mais aprofundadas ou suportar fluxos de trabalho automatizados.
É aqui que uma ferramenta de mapeamento de dados com suporte para a Shopify se torna essencial, permitindo que as empresas transformem, mapeiem e transfiram dados entre a Shopify e outros sistemas de forma eficiente e precisa.
Vamos analisar um exemplo de um cenário comum: a extração de dados de produtos do Shopify para um ficheiro CSV, utilizando ferramentas visuais no MapForce.

How Can You Get Data Out of Shopify?
Embora a Shopify forneça as ferramentas que as empresas precisam para configurar e gerir as suas lojas online, obter os dados necessários para outras tarefas a partir da plataforma pode ser um pouco mais complicado.
A Shopify disponibilizou historicamente várias APIs e ferramentas concebidas para ajudar os programadores a aceder e exportar dados, mas recentemente padronizou o GraphQL como o formato de API preferencial. De facto, em breve, exigirá que todas as novas aplicações da Shopify utilizem o GraphQL. A abordagem do GraphQL permite consultas altamente direcionadas, permitindo que os comerciantes solicitem apenas os dados específicos de que necessitam numa única chamada de API, o que melhora o desempenho e reduz qualquer transferência de dados desnecessária.

A Shopify oferece duas APIs GraphQL principais que ajudam os programadores ou profissionais de TI a aceder aos dados das lojas:
API GraphQL da Administração Shopify: Esta é a API principal para operações no lado do servidor. Permite o acesso a dados da loja, como produtos, encomendas, clientes, stock, informações de envio e muito mais. Os programadores podem utilizar a API GraphQL da Administração para extrair e mapear dados para outros sistemas.
API GraphQL para a Loja Online (Storefront API): Embora a API Storefront seja utilizada principalmente para criar experiências de compra personalizadas e aplicações front-end, ela também permite o acesso a dados da loja visíveis ao público, como listas de produtos, coleções e processos de pagamento. Isto é especialmente útil para empresas que desejam integrar dados da Shopify em plataformas voltadas para os clientes, como aplicações móveis personalizadas.
Utilizar o MapForce para integrar dados do Shopify
Os desenvolvedores podem usar o MapForce para integrar dados do Shopify com outros formatos e sistemas, criando mapeamentos personalizados que acedem diretamente a estas APIs GraphQL. Com suporte para o Shopify como fonte ou destino de qualquer projeto de integração de dados, o MapForce funciona como uma ponte, transformando as estruturas de dados do Shopify nos formatos exigidos pela estrutura de dados de destino – ou o contrário.
Para começar, os desenvolvedores devem criar uma aplicação personalizada dentro da sua loja Shopify. Uma aplicação personalizada fornece as credenciais e permissões da API necessárias para interagir de forma segura com as APIs da Shopify. Ao contrário das aplicações públicas listadas na Loja de Aplicações Shopify, que são oferecidas por parceiros da Shopify para uso geral, as aplicações personalizadas são desenvolvidas especificamente para um caso de uso privado de uma única loja e não estão disponíveis para outras lojas. Isto dá às empresas total controlo sobre a forma como os dados são acedidos e utilizados nos seus projetos de integração de dados ou projetos ETL.
Conectar o MapForce a APIs GraphQL
Para integrar dados do Shopify em outros sistemas, utilizando a API GraphQL da administração ou da loja online, existem várias etapas importantes que os proprietários de lojas precisam completar dentro do Shopify:
- Permitir o desenvolvimento de aplicações personalizadas Por padrão, a Shopify restringe a criação de aplicações personalizadas para ajudar a proteger os comerciantes contra acessos não autorizados à API. Antes de criar uma aplicação personalizada, o proprietário da loja ou o administrador devem, primeiramente, ativar o desenvolvimento de aplicações personalizadas nas configurações de administração da Shopify.
2. Criar uma aplicação personalizada ("Desenvolver aplicações") Depois de ativar o desenvolvimento de aplicações personalizadas, o próximo passo é criar a própria aplicação. Isto é feito através da secção "“Desenvolver aplicações”", onde o proprietário da loja ou o desenvolvedor podem definir uma nova aplicação especificamente para fins de integração com a API.
3. Atribuir os níveis de acesso corretos à API
A Shopify utiliza permissões detalhadas para controlar a que dados uma aplicação pode aceder. Dependendo da utilização específica da aplicação, será necessário conceder-lhe as permissões adequadas da API de Administração ou da API de Loja (por exemplo, read_orders, write_products, read_customers).
4. Instale a aplicação personalizada na loja Shopify
Após a configuração da aplicação e a atribuição das permissões necessárias, esta deve ser instalada diretamente na loja Shopify. Este processo de instalação gera as credenciais da API necessárias, incluindo o token de acesso à API.
5. Obter e armazenar o token de acesso à API
O token de acesso fornece um acesso seguro e autenticado às APIs da Shopify. Este token será utilizado pela sua ferramenta externa de mapeamento de dados para autenticar as solicitações da API.
Mapear os dados do Shopify para um ficheiro CSV
Agora, vamos analisar um exemplo de mapeamento GraphQL no MapForce. Este projeto de mapeamento satisfaz uma necessidade comum: extrair dados de produtos da Shopify para um ficheiro CSV, para poderem ser carregados noutro sistema, ou simplesmente para serem importados para o Excel para análise.
Ao inserir um componente Shopify num projeto de mapeamento, o MapForce guia-o através do processo de introdução do nome da sua loja, seleção da API de administração ou da API de loja, e introdução do seu token de acesso à API. Em seguida, pode definir as configurações de ligação, configurar as configurações de segurança HTTP (se necessário), adicionar parâmetros de cabeçalho relevantes e criar uma consulta ou uma mutação.

Para isso, pode construir a consulta GraphQL dinamicamente, selecionando elementos das opções disponíveis no lado direito, o que o guiará durante o processo. Também pode pressionar o botão "Obter Esquema" para pedir ao MapForce que crie automaticamente a definição do esquema JSON para a resposta da API, com base na introspeção do servidor e na consulta GraphQL (e pode guardar uma versão em cache desse esquema localmente para utilização futura ao abrir o mapeamento).
Para este exemplo, vamos usar uma consulta para produtos e vamos especificar quais dados queremos obter para os respetivos nós no lado esquerdo, à medida que construímos a consulta: o ID, o título e as variantes, com o respetivo código SKU e preço. Não vamos abordar todos os detalhes de como o GraphQL funciona neste artigo, mas existem muitos recursos online disponíveis, como https://graphql.org/learn/ e https://www.shopify.com/partners/blog/getting-started-with-graphql, que pode usar para saber mais sobre o assunto.
Em seguida, o MapForce insere a chamada do Shopify como um componente gráfico que exibe a estrutura da requisição e da resposta da API.

Este é o ponto onde as coisas ficam um pouco mais complexas: como a API GraphQL da Shopify é baseada na paginação e só retorna um determinado número de resultados por cada chamada à API (ou seja, uma página de resultados), teremos de fazer várias chamadas à API para obter todos os resultados da nossa consulta. Vamos fazer isso encapsulando esta chamada à API numa função personalizada que chamamos "getProducts", que podemos então chamar recursivamente se existirem páginas adicionais de resultados a serem obtidas.
É isto que pode ver no canto inferior direito do mapa, dentro da função "getProducts":

Basicamente, quando a primeira chamada à API retornar "verdadeiro" no campo "hasNextPage", vamos chamar a mesma função novamente, de forma recursiva, definindo a variável "$after" para a posição do "endCursor" que foi retornada pela chamada anterior à API. Além disso, vamos fazer uma pausa de 1 segundo entre cada chamada à API para evitar ultrapassar o limite de utilização da API.
E, obviamente, o resultado dessa chamada recursiva à função getProducts também é adicionado ao resultado da função getProducts principal, de forma que, no final, retornemos todos os resultados para o mapeamento principal.
Ao encapsular a chamada real da API dentro desta função getProducts, estamos também a alcançar um design muito elegante e organizado para a parte principal do processo, onde recebemos os resultados da chamada da API e os convertemos no ficheiro CSV resultante:

Este projeto de exemplo é fornecido com o MapForce, e pode introduzir o nome da sua loja Shopify e o token de acesso para o executar. Para isso, abra o ficheiro de exemplo "Shopify_ExportAllProducts.mfd" no projeto de exemplos, depois clique duas vezes na função "getProducts" e, finalmente, clique duas vezes no objeto de chamada POST do serviço web. É aqui que precisa de introduzir a URL da sua loja, bem como a cadeia de caracteres correta para o seu token de acesso da Shopify.
Depois de fazer isso, deverá conseguir aceder à aba "Saída" e visualizar uma pré-visualização da lista de todos os seus produtos, que será gerada em formato CSV.

Pode guardar o resultado diretamente ou implementar este projeto de mapeamento no MapForce Server para uma automatização de alto desempenho.
As ferramentas gráficas do MapForce facilitam a exportação de dados do Shopify para o formato CSV, bem como para outros formatos, como XML, bases de dados, Excel e muitos mais.
Experimente por si mesmo com um período de teste gratuito de 30 dias do MapForce.
Leia mais sobre a integração de dados da Shopify no nosso artigo sobre a criação de uma aplicação móvel para recolher informações sobre o stock e associá-las à Shopify em tempo real.