Skip to main content
Connect Shopify under Control Hub → Integrations. Organization admins can choose stores in Shopify, connect several stores, choose a default, rotate credentials, or disconnect one store. Credentials belong only to your organization.

Create a Shopify app

Aster currently connects through a customer-owned app created in the same Shopify organization as its stores. This uses Shopify’s client credentials grant; it is not a shared Aster public app or a cross-merchant OAuth installation.
  1. In the Shopify Dev Dashboard, create or open your app. Configure its read scopes.
  2. In Aster’s Shopify connection screen, save the app’s Client ID, Client secret, and the Install app link copied from its Dev Dashboard overview. This is a one-time setup for the organization, not per store.
  3. Copy the App URL shown by Aster into a new Shopify app version, disable embedding, and release the version. The production URL is https://www.asteragents.com/api/integrations/shopify/launch.
  4. Click Choose store in Shopify. Shopify displays the stores you can access; no store domain needs to be typed.
  5. After Shopify opens Aster, confirm Connect this store for the displayed Aster organization. Aster verifies Shopify’s signed launch, exchanges credentials, and reads the store identity and granted scopes before saving.
  6. Repeat the store selection for additional stores. App credentials are stored once; store connections reference that app. Access tokens last 24 hours and are exchanged on demand, kept only in memory.
If the app is already installed, opening it from the store’s Apps menu also starts the Aster handoff. This can work even when your account cannot use the installation link. If Shopify says you need permission after selecting a store, ask its administrator to check your store-level app installation permissions. Dev Dashboard access alone does not prove that the store allows installation. If a launch expires, open the app from Shopify again. Disconnecting a store removes its Aster connection. App settings remain available to reconnect; remove them from App settings after disconnecting the app’s stores. Disconnecting in Aster does not uninstall the app in Shopify.

Legacy connections

Existing manually configured connections continue working. For a legacy custom app created in the Shopify admin before 2026, choose Use an existing legacy access token, then provide its myshopify.com domain and Admin API access token (shpat_…). This advanced credential form is separate from the Shopify installation flow.

Scopes and historical data

Grant read scopes only. Typical scopes include read_products, read_inventory, read_locations, read_orders, read_customers and read_reports. Aster records granted scopes and warns if the app also has write scopes. Individual order records older than 60 days require read_all_orders in addition to the relevant order scope. ShopifyQL analytics uses read_reports and has its own protected-customer-data eligibility requirements; UI report access does not grant the app API access. Shopify currently documents historical analytics separately from the order-record permission, so do not assume missing read_all_orders blocks every historical aggregate. See ShopifyQL API requirements and Shopify’s explanation of historical analytics access.

Tools

  • Shopify List Stores discovers this organization’s saved store connections without exposing credentials. Agents can use the returned instance identifiers to query one store or each store for a combined analysis. Listing does not revalidate authentication.
  • Shopify Get Schema lists the readable roots, their arguments and any type in the Admin GraphQL API.
  • Shopify Query runs one read-only Admin GraphQL query. Mutations and subscriptions are rejected before any request is made.
Aster pins Admin API version 2026-07. Queries return one page at a time (up to 250 items). Request pageInfo { hasNextPage endCursor } and pass after until you have every page, including nested lineItems. For totals, use ordersCount, productsCount or ShopifyQL instead of adding up pages. Each response includes Shopify’s query cost and throttle status. Throttled, oversized or partially failed queries return an error, never truncated results. This connector does not sync a knowledge base, receive webhooks, or create or change products, orders, inventory or customers.