Shopify

Access your Shopify store data — products, orders, customers, inventory, analytics, payments, marketing, and more — all through natural language in Claude Code.

Overview

The Shopify integration connects your Shopify store directly to Claude Code through Presso. You can query products, orders, customers, inventory levels, payment data, marketing activities, and much more using natural language -- no need to navigate the Shopify admin dashboard or write API calls manually.

Presso provides over 25 dedicated tools for Shopify, covering everything from basic product lookups to advanced ShopifyQL analytics and custom GraphQL queries. Whether you need a quick stock check or a full sales trend analysis, you can get answers in seconds.

Setup

Prerequisites

  • A Shopify store with admin access
  • A Presso account connected to Claude Code (see MCP Connection)

Connecting your store

  1. Sign in to Presso and navigate to the Integrations page.
  2. Click Connect next to Shopify.
  3. You will be redirected to Shopify's OAuth authorization screen. Select the store you want to connect, review the requested permissions, and click Install app.
  4. Once authorized, you will be redirected back to Presso. Your Shopify store is now connected.
  5. In Claude Code, verify the connection by asking:
Show me my Shopify store info.

Claude Code will call shopify_get_shop_info and display your store name, currency, domain, and plan details.

Available tools

Presso exposes the following Shopify tools, organized by category.

Products

ToolDescription
shopify_list_productsBrowse all products with optional search, sorting, and pagination
shopify_get_productGet full details for a single product including variants, images, and inventory

Example queries:

Show me all products with the tag "summer-sale".
Get the full details for product ID 123456789, including all variants.
List products from the vendor "Nike", sorted by title.

Orders

ToolDescription
shopify_list_ordersBrowse orders with filters for status, financial status, and fulfillment status
shopify_get_orderGet full order details including line items, customer info, and shipping

Available order filters:

FilterOptions
statusopen, closed, cancelled, any
financialStatuspaid, pending, refunded, partially_refunded, any
fulfillmentStatusshipped, partial, unshipped, any

Example queries:

Show me all unfulfilled orders from this week.
List all refunded orders from the last 30 days.
Get the details of order #1042, including shipping address and line items.

Customers

ToolDescription
shopify_list_customersBrowse customers with search, sorting by name/spend/date
shopify_get_customerGet full customer profile including order history and addresses

Example queries:

Show me the top 10 customers by total spend.
Find customers with email addresses from "example.com".
Get the full profile and order history for customer ID 111222333.

Collections

ToolDescription
shopify_list_collectionsBrowse all collections (both smart and manual)

Example queries:

List all collections in my store.
Search for collections containing "winter".

Inventory

ToolDescription
shopify_list_inventory_itemsCheck stock levels across all locations

Example queries:

Show me inventory levels for all products.
Which products are low in stock or out of stock?

Shop info and alerts

ToolDescription
shopify_get_shop_infoGet store name, currency, domain, plan, and general settings
shopify_get_shop_alertsView active shop alerts and notifications

Example queries:

What's my store's primary currency and domain?
Are there any active alerts or notifications for my store?

Discounts

ToolDescription
shopify_list_discountsList all discount codes and automatic discounts

Example queries:

Show me all active discount codes.
List discounts that are currently running.

Fulfillment

ToolDescription
shopify_list_fulfillment_ordersList fulfillment orders by status

Available statuses: open, in_progress, cancelled, incomplete, closed

Example queries:

Show me all open fulfillment orders.
How many fulfillment orders are currently in progress?

Abandoned checkouts

ToolDescription
shopify_list_abandoned_checkoutsList checkouts that customers started but did not complete

Example queries:

Show me all abandoned checkouts from the past week.
How many abandoned checkouts do we have, and what's the total value?

Draft orders

ToolDescription
shopify_list_draft_ordersList draft orders that have not been finalized

Example queries:

Show me all open draft orders.

Markets

ToolDescription
shopify_list_marketsList configured international markets

Example queries:

What markets is my store selling to?

Returns and refunds

ToolDescription
shopify_list_returnsList returns with line item details (defaults to open/requested)
shopify_get_refundGet detailed refund information by refund ID

Example queries:

Show me all open return requests.
Get the details of refund gid://shopify/Refund/456.

Fraud detection

ToolDescription
shopify_list_order_risksList orders flagged with fraud risk assessments

Example queries:

Are there any high-risk orders I should review?
Show me orders flagged for potential fraud.

Payments

ToolDescription
shopify_get_payments_accountGet Shopify Payments account info, balance, and recent payouts
shopify_list_balance_transactionsList balance transactions
shopify_list_tender_transactionsList tender transactions (payment method breakdown)

Example queries:

What's my current Shopify Payments balance?
Show me the last 10 payouts.
Break down recent transactions by payment method.

Customer segments

ToolDescription
shopify_list_segmentsList customer segments

Example queries:

What customer segments have been created in my store?

Marketing

ToolDescription
shopify_list_marketing_activitiesList marketing activities and campaigns

Example queries:

Show me all active marketing campaigns.
What marketing activities have run this month?

Analytics (ShopifyQL)

These tools use ShopifyQL for accurate, server-side aggregated analytics. They all require a date range and support grouping by time period.

ToolDescription
shopify_sales_analyticsRevenue, orders, AOV, discounts, returns, shipping, taxes
shopify_product_analyticsSales by product, quantity sold, product performance
shopify_order_analyticsOrder count trends, AOV, total and net sales
shopify_customer_analyticsTotal, new, and returning customer metrics
shopify_session_analyticsSessions, unique visitors, conversion rate

Parameters:

ParameterRequiredDescription
startDateYesStart date in YYYY-MM-DD format
endDateYesEnd date in YYYY-MM-DD format
groupByNoday, week, or month (default varies by tool)

Example queries:

Show me total sales revenue for January 2026, grouped by week.
What's the trend in new vs. returning customers over the last 90 days?
Compare product performance for Q4 2025 -- which products sold the most?
What's my store's conversion rate over the past 30 days?
Show me daily order trends for the last two weeks.

Custom GraphQL queries

ToolDescription
shopify_get_custom_reportExecute any custom GraphQL query against the Shopify Admin API

For advanced use cases not covered by the built-in tools, you can run arbitrary GraphQL queries. This is useful for fetching data with specific field combinations, custom filters, or accessing API features not yet wrapped in dedicated tools.

Parameters:

ParameterRequiredDescription
queryYesA valid GraphQL query string
variablesNoA JSON object of GraphQL variables

Example -- fetching products with variant SKUs and prices:

query($first: Int!) {
  products(first: $first) {
    edges {
      node {
        id
        title
        variants(first: 5) {
          edges {
            node {
              sku
              price
            }
          }
        }
      }
    }
  }
}

With variables: { "first": 10 }

Example -- fetching orders created after a specific date:

query($query: String!) {
  orders(first: 50, query: $query) {
    edges {
      node {
        id
        name
        totalPriceSet {
          shopMoney {
            amount
          }
        }
      }
    }
  }
}

With variables: { "query": "created_at:>=2026-01-01" }

For the full GraphQL schema reference, see the Shopify Admin API documentation.

GID format

Shopify uses Global IDs (GIDs) in GraphQL format to identify resources. When calling any get tool that requires an ID, use the full GID string.

ResourceGID formatExample
Productgid://shopify/Product/{id}gid://shopify/Product/123456789
Ordergid://shopify/Order/{id}gid://shopify/Order/987654321
Customergid://shopify/Customer/{id}gid://shopify/Customer/111222333
Collectiongid://shopify/Collection/{id}gid://shopify/Collection/444555666
Refundgid://shopify/Refund/{id}gid://shopify/Refund/777888999

In practice, when you ask Claude Code something like "Get details for product 123456789," it will automatically construct the correct GID. You can also provide the full GID directly if you prefer.

Query syntax and filtering

Many list tools accept a query parameter that supports Shopify's search syntax for filtering results server-side.

Product filters:

product_type:Shoes
vendor:Nike
tag:on-sale
title:*hoodie*

Order filters:

financial_status:refunded
fulfillment_status:unshipped
created_at:>2026-01-01

Customer filters:

email:*@example.com
accepts_marketing:true

You can combine filters in a single query string. For full search syntax details, see the Shopify search syntax documentation.

Sorting

List tools support sorting through two parameters:

ParameterDescription
sortKeyThe field to sort by. Options vary per resource (e.g., TITLE, CREATED_AT, UPDATED_AT, TOTAL_SPENT)
reverseSet to true for descending order, false for ascending

Example:

Show me customers sorted by total spend, highest first.

Pagination

Shopify list tools use cursor-based pagination. Here is how it works:

  1. First request -- Call a list tool with a limit (default is 10).
  2. Check for more pages -- The response includes pageInfo with hasNextPage and a cursor value.
  3. Next page -- Call the same tool again, passing the cursor from the previous response.
  4. Repeat until hasNextPage is false.

In most cases, Claude Code handles pagination automatically when you ask for "all" of something. For very large datasets, you may want to specify limits or ask for specific pages.

Use case examples

Daily store health check

Give me a daily store health check: today's order count, revenue,
any unfulfilled orders, low-stock items, and active alerts.

Weekly sales report

Generate a weekly sales report for the past 4 weeks. Include total revenue,
order count, average order value, and top 5 products by revenue.
Group the data by week.

Customer analysis

Show me my top 20 customers by total spend. For each customer,
include their order count and when they last ordered.

Abandoned cart recovery

List all abandoned checkouts from the past 7 days.
Summarize the total value and most commonly abandoned products.

Fraud review

Show me all high-risk orders. For each one, give me the order details
and the specific risk indicators.

Inventory planning

Which products are running low on stock? Show me items with fewer
than 10 units available across all locations.

Cross-channel comparison

Compare my Shopify sales data with Google Ads and Meta Ads performance
for the past month. Which ad channel is driving the most revenue?

Limitations and notes

  • Read-only access -- Presso provides read-only access to your Shopify data. You cannot create, update, or delete resources (products, orders, etc.) through Presso.
  • Rate limits -- Shopify enforces API rate limits. Presso handles these gracefully, but very large bulk queries may take longer to complete.
  • Data freshness -- Data is fetched in real time from the Shopify Admin API. There is no caching layer, so you always get the latest information.
  • Single store -- Each Presso connection is linked to one Shopify store. If you manage multiple stores, you will need to connect each one separately.
  • Analytics date ranges -- ShopifyQL analytics tools require explicit start and end dates. Claude Code will typically infer reasonable defaults when you ask about "last month" or "this quarter," but you can always specify exact dates for precision.
  • Custom GraphQL -- When using shopify_get_custom_report, you are responsible for writing valid GraphQL queries. Invalid queries will return error messages from the Shopify API.