mirror of
https://github.com/crewAIInc/crewAI.git
synced 2025-12-16 04:18:35 +00:00
393 lines
17 KiB
Plaintext
393 lines
17 KiB
Plaintext
---
|
|
title: Integração com Shopify
|
|
description: "Gestão de e-commerce e loja online com integração do Shopify para CrewAI."
|
|
icon: "shopify"
|
|
mode: "wide"
|
|
---
|
|
|
|
## Visão Geral
|
|
|
|
Permita que seus agentes gerenciem operações de e-commerce através do Shopify. Gerencie clientes, pedidos, produtos, inventário e análises da loja para otimizar sua empresa online com automação alimentada por IA.
|
|
|
|
## Pré-requisitos
|
|
|
|
Antes de utilizar a integração com o Shopify, certifique-se de que você possui:
|
|
|
|
- Uma conta [CrewAI AMP](https://app.crewai.com) com uma assinatura ativa
|
|
- Uma loja Shopify com permissões administrativas adequadas
|
|
- Sua loja Shopify conectada através da [página de Integrações](https://app.crewai.com/integrations)
|
|
|
|
## Configurando a Integração Shopify
|
|
|
|
### 1. Conecte sua Loja Shopify
|
|
|
|
1. Acesse [CrewAI AMP Integrações](https://app.crewai.com/crewai_plus/connectors)
|
|
2. Encontre **Shopify** na seção Integrações de Autenticação
|
|
3. Clique em **Conectar** e complete o fluxo OAuth
|
|
4. Conceda as permissões necessárias para gerenciamento de loja e produtos
|
|
5. Copie seu Token Enterprise em [Configurações de Integração](https://app.crewai.com/crewai_plus/settings/integrations)
|
|
|
|
### 2. Instale o Pacote Necessário
|
|
|
|
```bash
|
|
uv add crewai-tools
|
|
```
|
|
|
|
### 3. Configuração de variável de ambiente
|
|
|
|
<Note>
|
|
Para usar integrações com `Agent(apps=[])`, você deve definir a variável de ambiente `CREWAI_PLATFORM_INTEGRATION_TOKEN` com seu Enterprise Token.
|
|
</Note>
|
|
|
|
```bash
|
|
export CREWAI_PLATFORM_INTEGRATION_TOKEN="seu_enterprise_token"
|
|
```
|
|
|
|
Ou adicione ao seu arquivo `.env`:
|
|
|
|
```
|
|
CREWAI_PLATFORM_INTEGRATION_TOKEN=seu_enterprise_token
|
|
```
|
|
|
|
## Ferramentas Disponíveis
|
|
|
|
### **Gerenciamento de Clientes**
|
|
|
|
<AccordionGroup>
|
|
<Accordion title="shopify/get_customers">
|
|
**Descrição:** Recupera uma lista de clientes da sua loja Shopify.
|
|
|
|
**Parâmetros:**
|
|
- `customerIds` (string, opcional): Lista de IDs de clientes separada por vírgula para filtrar (exemplo: "207119551, 207119552")
|
|
- `createdAtMin` (string, opcional): Retorna somente clientes criados após esta data (ISO ou timestamp Unix)
|
|
- `createdAtMax` (string, opcional): Retorna somente clientes criados antes desta data (ISO ou timestamp Unix)
|
|
- `updatedAtMin` (string, opcional): Retorna somente clientes atualizados após esta data (ISO ou timestamp Unix)
|
|
- `updatedAtMax` (string, opcional): Retorna somente clientes atualizados antes desta data (ISO ou timestamp Unix)
|
|
- `limit` (string, opcional): Número máximo de clientes a retornar (padrão 250)
|
|
</Accordion>
|
|
|
|
<Accordion title="shopify/search_customers">
|
|
**Descrição:** Pesquise por clientes usando critérios de filtragem avançados.
|
|
|
|
**Parâmetros:**
|
|
- `filterFormula` (object, opcional): Filtro avançado em forma normal disjuntiva com operadores específicos de campo
|
|
- `limit` (string, opcional): Número máximo de clientes a retornar (padrão 250)
|
|
</Accordion>
|
|
|
|
<Accordion title="shopify/create_customer">
|
|
**Descrição:** Crie um novo cliente em sua loja Shopify.
|
|
|
|
**Parâmetros:**
|
|
- `firstName` (string, obrigatório): Primeiro nome do cliente
|
|
- `lastName` (string, obrigatório): Sobrenome do cliente
|
|
- `email` (string, obrigatório): Endereço de e-mail do cliente
|
|
- `company` (string, opcional): Nome da empresa
|
|
- `streetAddressLine1` (string, opcional): Endereço
|
|
- `streetAddressLine2` (string, opcional): Complemento do endereço
|
|
- `city` (string, opcional): Cidade
|
|
- `state` (string, opcional): Estado ou código da província
|
|
- `country` (string, opcional): País
|
|
- `zipCode` (string, opcional): CEP
|
|
- `phone` (string, opcional): Telefone
|
|
- `tags` (string, opcional): Tags como array ou lista separada por vírgula
|
|
- `note` (string, opcional): Observação sobre o cliente
|
|
- `sendEmailInvite` (boolean, opcional): Se deve enviar convite por e-mail
|
|
- `metafields` (object, opcional): Metacampos adicionais em formato JSON
|
|
</Accordion>
|
|
|
|
<Accordion title="shopify/update_customer">
|
|
**Descrição:** Atualize um cliente existente em sua loja Shopify.
|
|
|
|
**Parâmetros:**
|
|
- `customerId` (string, obrigatório): O ID do cliente a ser atualizado
|
|
- `firstName` (string, opcional): Primeiro nome do cliente
|
|
- `lastName` (string, opcional): Sobrenome do cliente
|
|
- `email` (string, opcional): Endereço de e-mail do cliente
|
|
- `company` (string, opcional): Nome da empresa
|
|
- `streetAddressLine1` (string, opcional): Endereço
|
|
- `streetAddressLine2` (string, opcional): Complemento do endereço
|
|
- `city` (string, opcional): Cidade
|
|
- `state` (string, opcional): Estado ou código da província
|
|
- `country` (string, opcional): País
|
|
- `zipCode` (string, opcional): CEP
|
|
- `phone` (string, opcional): Telefone
|
|
- `tags` (string, opcional): Tags como array ou lista separada por vírgula
|
|
- `note` (string, opcional): Observação sobre o cliente
|
|
- `sendEmailInvite` (boolean, opcional): Se deve enviar convite por e-mail
|
|
- `metafields` (object, opcional): Metacampos adicionais em formato JSON
|
|
</Accordion>
|
|
</AccordionGroup>
|
|
|
|
### **Gestão de Pedidos**
|
|
|
|
<AccordionGroup>
|
|
<Accordion title="shopify/get_orders">
|
|
**Descrição:** Recupera uma lista de pedidos da sua loja Shopify.
|
|
|
|
**Parâmetros:**
|
|
- `orderIds` (string, opcional): Lista de IDs de pedidos separada por vírgula para filtrar (exemplo: "450789469, 450789470")
|
|
- `createdAtMin` (string, opcional): Retorna somente pedidos criados após esta data (ISO ou timestamp Unix)
|
|
- `createdAtMax` (string, opcional): Retorna somente pedidos criados antes desta data (ISO ou timestamp Unix)
|
|
- `updatedAtMin` (string, opcional): Retorna somente pedidos atualizados após esta data (ISO ou timestamp Unix)
|
|
- `updatedAtMax` (string, opcional): Retorna somente pedidos atualizados antes desta data (ISO ou timestamp Unix)
|
|
- `limit` (string, opcional): Número máximo de pedidos a retornar (padrão 250)
|
|
</Accordion>
|
|
|
|
<Accordion title="shopify/create_order">
|
|
**Descrição:** Crie um novo pedido em sua loja Shopify.
|
|
|
|
**Parâmetros:**
|
|
- `email` (string, obrigatório): Endereço de e-mail do cliente
|
|
- `lineItems` (object, obrigatório): Itens do pedido em formato JSON com título, preço, quantidade e variant_id
|
|
- `sendReceipt` (boolean, opcional): Se deve enviar recibo do pedido
|
|
- `fulfillmentStatus` (string, opcional): Status de atendimento - Opções: fulfilled, null, partial, restocked
|
|
- `financialStatus` (string, opcional): Status financeiro - Opções: pending, authorized, partially_paid, paid, partially_refunded, refunded, voided
|
|
- `inventoryBehaviour` (string, opcional): Comportamento de inventário - Opções: bypass, decrement_ignoring_policy, decrement_obeying_policy
|
|
- `note` (string, opcional): Observação do pedido
|
|
</Accordion>
|
|
|
|
<Accordion title="shopify/update_order">
|
|
**Descrição:** Atualize um pedido existente em sua loja Shopify.
|
|
|
|
**Parâmetros:**
|
|
- `orderId` (string, obrigatório): O ID do pedido a ser atualizado
|
|
- `email` (string, opcional): Endereço de e-mail do cliente
|
|
- `lineItems` (object, opcional): Itens do pedido atualizados em formato JSON
|
|
- `sendReceipt` (boolean, opcional): Se deve enviar recibo do pedido
|
|
- `fulfillmentStatus` (string, opcional): Status de atendimento - Opções: fulfilled, null, partial, restocked
|
|
- `financialStatus` (string, opcional): Status financeiro - Opções: pending, authorized, partially_paid, paid, partially_refunded, refunded, voided
|
|
- `inventoryBehaviour` (string, opcional): Comportamento de inventário - Opções: bypass, decrement_ignoring_policy, decrement_obeying_policy
|
|
- `note` (string, opcional): Observação do pedido
|
|
</Accordion>
|
|
|
|
<Accordion title="shopify/get_abandoned_carts">
|
|
**Descrição:** Recupera carrinhos abandonados da sua loja Shopify.
|
|
|
|
**Parâmetros:**
|
|
- `createdWithInLast` (string, opcional): Restringe os resultados para checkouts criados dentro do período especificado
|
|
- `createdAfterId` (string, opcional): Restringe os resultados após o ID especificado
|
|
- `status` (string, opcional): Mostra checkouts com o status especificado - Opções: open, closed (padrão open)
|
|
- `createdAtMin` (string, opcional): Retorna somente carrinhos criados após esta data (ISO ou timestamp Unix)
|
|
- `createdAtMax` (string, opcional): Retorna somente carrinhos criados antes desta data (ISO ou timestamp Unix)
|
|
- `limit` (string, opcional): Número máximo de carrinhos a retornar (padrão 250)
|
|
</Accordion>
|
|
</AccordionGroup>
|
|
|
|
### **Gestão de Produtos (REST API)**
|
|
|
|
<AccordionGroup>
|
|
<Accordion title="shopify/get_products">
|
|
**Descrição:** Recupera uma lista de produtos da sua loja Shopify utilizando a REST API.
|
|
|
|
**Parâmetros:**
|
|
- `productIds` (string, opcional): Lista de IDs de produtos separada por vírgula para filtrar (exemplo: "632910392, 632910393")
|
|
- `title` (string, opcional): Filtrar pelo título do produto
|
|
- `productType` (string, opcional): Filtrar pelo tipo de produto
|
|
- `vendor` (string, opcional): Filtrar por fornecedor
|
|
- `status` (string, opcional): Filtrar por status - Opções: active, archived, draft
|
|
- `createdAtMin` (string, opcional): Retorna somente produtos criados após esta data (ISO ou timestamp Unix)
|
|
- `createdAtMax` (string, opcional): Retorna somente produtos criados antes desta data (ISO ou timestamp Unix)
|
|
- `updatedAtMin` (string, opcional): Retorna somente produtos atualizados após esta data (ISO ou timestamp Unix)
|
|
- `updatedAtMax` (string, opcional): Retorna somente produtos atualizados antes desta data (ISO ou timestamp Unix)
|
|
- `limit` (string, opcional): Número máximo de produtos a retornar (padrão 250)
|
|
</Accordion>
|
|
|
|
<Accordion title="shopify/create_product">
|
|
**Descrição:** Crie um novo produto em sua loja Shopify utilizando a REST API.
|
|
|
|
**Parâmetros:**
|
|
- `title` (string, obrigatório): Título do produto
|
|
- `productType` (string, obrigatório): Tipo/categoria do produto
|
|
- `vendor` (string, obrigatório): Fornecedor do produto
|
|
- `productDescription` (string, opcional): Descrição do produto (aceita texto simples ou HTML)
|
|
- `tags` (string, opcional): Tags do produto como array ou lista separada por vírgula
|
|
- `price` (string, opcional): Preço do produto
|
|
- `inventoryPolicy` (string, opcional): Política de estoque - Opções: deny, continue
|
|
- `imageUrl` (string, opcional): URL da imagem do produto
|
|
- `isPublished` (boolean, opcional): Se o produto está publicado
|
|
- `publishToPointToSale` (boolean, opcional): Se deve publicar no ponto de venda
|
|
</Accordion>
|
|
|
|
<Accordion title="shopify/update_product">
|
|
**Descrição:** Atualize um produto existente em sua loja Shopify utilizando a REST API.
|
|
|
|
**Parâmetros:**
|
|
- `productId` (string, obrigatório): O ID do produto a ser atualizado
|
|
- `title` (string, opcional): Título do produto
|
|
- `productType` (string, opcional): Tipo/categoria do produto
|
|
- `vendor` (string, opcional): Fornecedor do produto
|
|
- `productDescription` (string, opcional): Descrição do produto (aceita texto simples ou HTML)
|
|
- `tags` (string, opcional): Tags do produto como array ou lista separada por vírgula
|
|
- `price` (string, opcional): Preço do produto
|
|
- `inventoryPolicy` (string, opcional): Política de estoque - Opções: deny, continue
|
|
- `imageUrl` (string, opcional): URL da imagem do produto
|
|
- `isPublished` (boolean, opcional): Se o produto está publicado
|
|
- `publishToPointToSale` (boolean, opcional): Se deve publicar no ponto de venda
|
|
</Accordion>
|
|
</AccordionGroup>
|
|
|
|
### **Gestão de Produtos (GraphQL)**
|
|
|
|
<AccordionGroup>
|
|
<Accordion title="shopify/get_products_graphql">
|
|
**Descrição:** Recupere produtos utilizando filtros avançados do GraphQL.
|
|
|
|
**Parâmetros:**
|
|
- `productFilterFormula` (object, opcional): Filtro avançado em forma normal disjuntiva com suporte a campos como id, title, vendor, status, handle, tag, created_at, updated_at, published_at
|
|
</Accordion>
|
|
|
|
<Accordion title="shopify/create_product_graphql">
|
|
**Descrição:** Crie um novo produto utilizando a API GraphQL com suporte aprimorado a mídias.
|
|
|
|
**Parâmetros:**
|
|
- `title` (string, obrigatório): Título do produto
|
|
- `productType` (string, obrigatório): Tipo/categoria do produto
|
|
- `vendor` (string, obrigatório): Fornecedor do produto
|
|
- `productDescription` (string, opcional): Descrição do produto (aceita texto simples ou HTML)
|
|
- `tags` (string, opcional): Tags do produto como array ou lista separada por vírgula
|
|
- `media` (object, opcional): Objetos de mídia com texto alternativo, tipo de conteúdo e URL de origem
|
|
- `additionalFields` (object, opcional): Campos adicionais do produto como status, requiresSellingPlan, giftCard
|
|
</Accordion>
|
|
|
|
<Accordion title="shopify/update_product_graphql">
|
|
**Descrição:** Atualize um produto existente utilizando a API GraphQL com suporte aprimorado a mídias.
|
|
|
|
**Parâmetros:**
|
|
- `productId` (string, obrigatório): O ID GraphQL do produto a ser atualizado (ex.: "gid://shopify/Product/913144112")
|
|
- `title` (string, opcional): Título do produto
|
|
- `productType` (string, opcional): Tipo/categoria do produto
|
|
- `vendor` (string, opcional): Fornecedor do produto
|
|
- `productDescription` (string, opcional): Descrição do produto (aceita texto simples ou HTML)
|
|
- `tags` (string, opcional): Tags do produto como array ou lista separada por vírgula
|
|
- `media` (object, opcional): Objetos de mídia atualizados com texto alternativo, tipo de conteúdo e URL de origem
|
|
- `additionalFields` (object, opcional): Campos adicionais do produto como status, requiresSellingPlan, giftCard
|
|
</Accordion>
|
|
</AccordionGroup>
|
|
|
|
## Exemplos de Uso
|
|
|
|
### Configuração Básica do Agente Shopify
|
|
|
|
```python
|
|
from crewai import Agent, Task, Crew
|
|
|
|
# Create an agent with Shopify capabilities
|
|
shopify_agent = Agent(
|
|
role="E-commerce Manager",
|
|
goal="Manage online store operations and customer relationships efficiently",
|
|
backstory="An AI assistant specialized in e-commerce operations and online store management.",
|
|
apps=['shopify']
|
|
)
|
|
|
|
# Task to create a new customer
|
|
create_customer_task = Task(
|
|
description="Create a new VIP customer Jane Smith with email jane.smith@example.com and phone +1-555-0123",
|
|
agent=shopify_agent,
|
|
expected_output="Customer created successfully with customer ID"
|
|
)
|
|
|
|
# Run the task
|
|
crew = Crew(
|
|
agents=[shopify_agent],
|
|
tasks=[create_customer_task]
|
|
)
|
|
|
|
crew.kickoff()
|
|
```
|
|
|
|
### Filtrando Ferramentas Específicas do Shopify
|
|
|
|
```python
|
|
|
|
store_manager = Agent(
|
|
role="Store Manager",
|
|
goal="Manage customer orders and product catalog",
|
|
backstory="An experienced store manager who handles customer relationships and inventory management.",
|
|
apps=['shopify']
|
|
)
|
|
|
|
# Task to manage store operations
|
|
store_task = Task(
|
|
description="Create a new customer and process their order for 2 Premium Coffee Mugs",
|
|
agent=store_manager,
|
|
expected_output="Customer created and order processed successfully"
|
|
)
|
|
|
|
crew = Crew(
|
|
agents=[store_manager],
|
|
tasks=[store_task]
|
|
)
|
|
|
|
crew.kickoff()
|
|
```
|
|
|
|
### Gestão de Produtos com GraphQL
|
|
|
|
```python
|
|
from crewai import Agent, Task, Crew
|
|
|
|
product_manager = Agent(
|
|
role="Product Manager",
|
|
goal="Manage product catalog and inventory with advanced GraphQL capabilities",
|
|
backstory="An AI assistant that specializes in product management and catalog optimization.",
|
|
apps=['shopify']
|
|
)
|
|
|
|
# Task to manage product catalog
|
|
catalog_task = Task(
|
|
description="""
|
|
1. Create a new product "Premium Coffee Mug" from Coffee Co vendor
|
|
2. Add high-quality product images and descriptions
|
|
3. Search for similar products from the same vendor
|
|
4. Update product tags and pricing strategy
|
|
""",
|
|
agent=product_manager,
|
|
expected_output="Product created and catalog optimized successfully"
|
|
)
|
|
|
|
crew = Crew(
|
|
agents=[product_manager],
|
|
tasks=[catalog_task]
|
|
)
|
|
|
|
crew.kickoff()
|
|
```
|
|
|
|
### Análise de Pedidos e Clientes
|
|
|
|
```python
|
|
from crewai import Agent, Task, Crew
|
|
|
|
analytics_agent = Agent(
|
|
role="E-commerce Analyst",
|
|
goal="Analyze customer behavior and order patterns to optimize store performance",
|
|
backstory="An analytical AI that excels at extracting insights from e-commerce data.",
|
|
apps=['shopify']
|
|
)
|
|
|
|
# Complex task involving multiple operations
|
|
analytics_task = Task(
|
|
description="""
|
|
1. Retrieve recent customer data and order history
|
|
2. Identify abandoned carts from the last 7 days
|
|
3. Analyze product performance and inventory levels
|
|
4. Generate recommendations for customer retention
|
|
""",
|
|
agent=analytics_agent,
|
|
expected_output="Comprehensive e-commerce analytics report with actionable insights"
|
|
)
|
|
|
|
crew = Crew(
|
|
agents=[analytics_agent],
|
|
tasks=[analytics_task]
|
|
)
|
|
|
|
crew.kickoff()
|
|
```
|
|
|
|
### Precisa de Ajuda?
|
|
|
|
<Card title="Precisa de Ajuda?" icon="headset" href="mailto:support@crewai.com">
|
|
Entre em contato com nossa equipe de suporte para assistência na configuração ou resolução de problemas de integração com o Shopify.
|
|
</Card>
|