Shopify
Tools to interact with Shopify.
ShopifyTools enable an Agent to analyze sales data, product performance, and customer insights using the Shopify Admin GraphQL API.
Prerequisites
The following example requires a Shopify Admin API access token with appropriate scopes.
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
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.
1from kern.agent import Agent2from kern.models.openai import OpenAIResponses3from kern.tools.shopify import ShopifyTools45sales_agent = Agent(6 name="Sales Analyst",7 model=OpenAIResponses(id="gpt-5.2"),8 tools=[ShopifyTools()],9 instructions=[10 "You are a sales analyst for an e-commerce store using Shopify.",11 "Help the user understand their sales performance, product trends, and customer behavior.",12 ],13 markdown=True,14 add_datetime_to_context=True, # This is important to get the current date and time in the context15)1617sales_agent.print_response("What are my top 5 selling products this month?")Toolkit Params
| Parameter | Type | Default | Description |
|---|---|---|---|
shop_name | str | - | Your Shopify store name (e.g., "my-store" from my-store.myshopify.com). Or set via SHOPIFY_SHOP_NAME environment variable. |
access_token | str | - | 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
- View Tools