> ## Documentation Index
> Fetch the complete documentation index at: https://docs.crewai.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Integração com Shopify

> Gestão de e-commerce e loja online com integração do Shopify para CrewAI.

## 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 theme={null}
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 theme={null}
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 theme={null}
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 theme={null}

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 theme={null}
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 theme={null}
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>
