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

# Shopify

> Analyze sales, products, inventory, and customers with the Shopify Admin GraphQL API.

**ShopifyTools** enable an Agent to analyze sales data, product performance, and customer insights using the Shopify Admin GraphQL API.

## Prerequisites

The following example requires the `openai` library and a Shopify Admin API access token with appropriate scopes.

```shell theme={null}
uv pip install openai
```

Set the following environment variables:

* `SHOPIFY_SHOP_NAME`: Your Shopify shop name (e.g., "my-store" from my-store.myshopify.com)
* `SHOPIFY_ACCESS_TOKEN`: Your Shopify Admin API access token
* `OPENAI_API_KEY`: Your OpenAI API key

You can get your access token from: Shopify Admin > Settings > Apps and sales channels > Develop apps

**Required API scopes:**

* `read_orders` (for order and sales data)
* `read_products` (for product information)
* `read_customers` (for customer insights)
* `read_analytics` (for analytics data)

## Example

The following agent will analyze sales data and provide insights.

```python cookbook/91_tools/shopify_tools.py theme={null}
from agno.agent import Agent
from agno.models.openai import OpenAIChat
from agno.tools.shopify import ShopifyTools

sales_agent = Agent(
    name="Sales Analyst",
    model=OpenAIChat(id="gpt-4o"),
    tools=[ShopifyTools()],
    instructions=[
        "You are a sales analyst for an e-commerce store using Shopify.",
        "Help the user understand their sales performance, product trends, and customer behavior.",
        "When analyzing data:",
        "1. Start by getting the relevant data using the available tools",
        "2. Summarize key insights in a clear, actionable format",
        "3. Highlight notable patterns or concerns",
        "4. Suggest next steps when appropriate",
        "Always present numbers clearly and use comparisons to add context.",
        "If you need to get information about the store, like currency, call the `get_shop_info` tool.",
    ],
    add_datetime_to_context=True,
    markdown=True,
)

sales_agent.print_response(
    "What are my top 5 selling products in the last 30 days? "
    "Show me quantity sold and revenue for each.",
)
```

## Toolkit Params

| Parameter      | Type            | Default     | Description                                                                                                                  |
| -------------- | --------------- | ----------- | ---------------------------------------------------------------------------------------------------------------------------- |
| `shop_name`    | `Optional[str]` | `None`      | Your Shopify store name (e.g., "my-store" from my-store.myshopify.com). Or set via `SHOPIFY_SHOP_NAME` environment variable. |
| `access_token` | `Optional[str]` | `None`      | Shopify Admin API access token with required scopes. Or set via `SHOPIFY_ACCESS_TOKEN` environment variable.                 |
| `api_version`  | `str`           | `"2025-10"` | Shopify API version.                                                                                                         |
| `timeout`      | `int`           | `30`        | Request timeout in seconds.                                                                                                  |

## Toolkit Functions

| Function                       | Description                                                                     |
| ------------------------------ | ------------------------------------------------------------------------------- |
| `get_shop_info`                | Get basic information about the Shopify store                                   |
| `get_products`                 | Get products from the store with optional status filter                         |
| `get_orders`                   | Get orders with optional date range and status filters                          |
| `get_top_selling_products`     | Get the top selling products by quantity sold                                   |
| `get_products_bought_together` | Find products that are frequently bought together for bundle recommendations    |
| `get_sales_by_date_range`      | Get sales summary for a specific date range with daily breakdown                |
| `get_order_analytics`          | Get comprehensive order analytics including revenue, AOV, and fulfillment rates |
| `get_product_sales_breakdown`  | Get detailed sales breakdown for a specific product                             |
| `get_customer_order_history`   | Get order history for a specific customer by email                              |
| `get_inventory_levels`         | Get current inventory levels for all products                                   |
| `get_low_stock_products`       | Get products that are running low on stock                                      |
| `get_sales_trends`             | Get sales trends comparing current period to previous period                    |
| `get_average_order_value`      | Get average order value over time grouped by day, week, or month                |
| `get_repeat_customers`         | Find customers who have made multiple purchases                                 |

## Developer Resources

* [Tools](https://github.com/agno-agi/agno/blob/main/libs/agno/agno/tools/shopify.py)
