Skip to content

integrations/ecommerce/shopify/dist

Interfaces

ShopifyConnection

Type Parameters

Type Parameter
TNode

Properties

edges?
optional edges?: {
  node?: TNode;
}[];
node?
optional node?: TNode;
pageInfo?
optional pageInfo?: {
  endCursor?: string;
  hasNextPage?: boolean;
};
endCursor?
optional endCursor?: string;
hasNextPage?
optional hasNextPage?: boolean;

ShopifyCredentialStatusInput

Properties

adminAccessConfigured?
optional adminAccessConfigured?: boolean;
scopes?
optional scopes?: string[];
shopDomain?
optional shopDomain?: string;
webhookSecretConfigured?
optional webhookSecretConfigured?: boolean;

ShopifyDraftOrderCreateResult

Properties

draftOrder?
optional draftOrder?: Record<string, unknown>;
userErrors
userErrors: {
  field?: string[];
  message: string;
}[];
field?
optional field?: string[];
message
message: string;

ShopifyDraftOrderInput

Properties

input
input: Record<string, unknown>;

ShopifyEcommerceClient

Properties

rawClient
rawClient: AdminApiClient;

Methods

createDraftOrder()
createDraftOrder(input): Promise<ShopifyDraftOrderCreateResult>;
Parameters
Parameter Type
input ShopifyDraftOrderInput
Returns

Promise\<ShopifyDraftOrderCreateResult>

getCustomer()
getCustomer(input): Promise<Record<string, unknown>>;
Parameters
Parameter Type
input ShopifyIdInput
Returns

Promise\<Record\<string, unknown>>

getOrder()
getOrder(input): Promise<Record<string, unknown>>;
Parameters
Parameter Type
input ShopifyIdInput
Returns

Promise\<Record\<string, unknown>>

getProduct()
getProduct(input): Promise<Record<string, unknown>>;
Parameters
Parameter Type
input ShopifyIdInput
Returns

Promise\<Record\<string, unknown>>

getShop()
getShop(): Promise<Record<string, unknown>>;
Returns

Promise\<Record\<string, unknown>>

graphql()
graphql<TData>(input): Promise<ShopifyGraphqlResponse<TData>>;
Type Parameters
Type Parameter Default type
TData Record\<string, unknown>
Parameters
Parameter Type
input ShopifyGraphqlInput
Returns

Promise\<ShopifyGraphqlResponse\<TData>>

parseWebhook()
parseWebhook(input): Promise<ShopifyWebhook>;
Parameters
Parameter Type
input ShopifyWebhookParseInput
Returns

Promise\<ShopifyWebhook>

searchCustomers()
searchCustomers(input?): Promise<ShopifySearchResult<Record<string, unknown>>>;
Parameters
Parameter Type
input? ShopifySearchInput
Returns

Promise\<ShopifySearchResult\<Record\<string, unknown>>>

searchOrders()
searchOrders(input?): Promise<ShopifySearchResult<Record<string, unknown>>>;
Parameters
Parameter Type
input? ShopifySearchInput
Returns

Promise\<ShopifySearchResult\<Record\<string, unknown>>>

searchProducts()
searchProducts(input?): Promise<ShopifySearchResult<Record<string, unknown>>>;
Parameters
Parameter Type
input? ShopifySearchInput
Returns

Promise\<ShopifySearchResult\<Record\<string, unknown>>>


ShopifyEcommerceClientOptions

Properties

adminAccessToken
adminAccessToken: string;
apiVersion?
optional apiVersion?: string;
fetch?
optional fetch?: {
  (input, init?): Promise<Response>;
  (input, init?): Promise<Response>;
};
Call Signature
(input, init?): Promise<Response>;

MDN Reference

Parameters
Parameter Type
input URL | RequestInfo
init? RequestInit
Returns

Promise\<Response>

Call Signature
(input, init?): Promise<Response>;

MDN Reference

Parameters
Parameter Type
input string | Request | URL
init? RequestInit
Returns

Promise\<Response>

rawClient?
optional rawClient?: AdminApiClient;
shopDomain
shopDomain: string;

ShopifyGraphqlInput

Extends

Properties

operationName?
optional operationName?: string;
query
query: string;
variables?
optional variables?: ShopifyGraphqlVariables;
Inherited from
ShopifyGraphqlRequestOptions.variables

ShopifyGraphqlResponse

Type Parameters

Type Parameter Default type
TData Record\<string, unknown>

Properties

data?
optional data?: TData;
errors?
optional errors?: unknown;
extensions?
optional extensions?: Record<string, unknown>;
headers?
optional headers?: Headers;

ShopifyIdInput

Properties

id
id: string;

ShopifySearchInput

Properties

after?
optional after?: string;
first?
optional first?: number;
query?
optional query?: string;

ShopifySearchResult

Type Parameters

Type Parameter
TNode

Properties

endCursor?
optional endCursor?: string;
hasNextPage
hasNextPage: boolean;
nodes
nodes: TNode[];

ShopifyWebhook

Properties

apiVersion?
optional apiVersion?: string;
payload?
optional payload?: unknown;
rawBody
rawBody: string;
shopDomain?
optional shopDomain?: string;
topic?
optional topic?: string;
webhookId?
optional webhookId?: string;

ShopifyWebhookParseInput

Properties

apiVersion?
optional apiVersion?: string;
hmac?
optional hmac?: string;
request
request: string | Request | Buffer<ArrayBufferLike>;
requireSignature?
optional requireSignature?: boolean;
shopDomain?
optional shopDomain?: string;
topic?
optional topic?: string;
webhookId?
optional webhookId?: string;
webhookSecret?
optional webhookSecret?: string;

Type Aliases

ShopifyAdminApiClient

type ShopifyAdminApiClient = AdminApiClient;

ShopifyGraphqlRequestOptions

type ShopifyGraphqlRequestOptions = Pick<ApiClientRequestOptions, "apiVersion" | "headers" | "retries" | "signal"> & {
  variables?: ShopifyGraphqlVariables;
};

Type Declaration

Name Type
variables? ShopifyGraphqlVariables

ShopifyGraphqlVariables

type ShopifyGraphqlVariables = Record<string, unknown>;

ShopifyRawAdminGraphqlInput

type ShopifyRawAdminGraphqlInput = Partial<ShopifyGraphqlInput>;

Functions

createShopifyEcommerceClient()

function createShopifyEcommerceClient(options): ShopifyEcommerceClient;

Parameters

Parameter Type
options ShopifyEcommerceClientOptions

Returns

ShopifyEcommerceClient


createShopifyEcommerceIntegration()

function createShopifyEcommerceIntegration(options): DefinedIntegration<{
  capabilities: [{
     audiences: ["customer-facing", "internal-support", "mixed"];
     capability: "receive";
     description: "Validates and parses Shopify webhooks for SDK-user-owned commerce support workflows.";
     exposesSensitiveData: true;
     label: "Receive Shopify webhooks";
     providerObjects: [{
        kind: "shopifyWebhook";
        label: "Shopify Webhook";
     }];
     requiresCredential: true;
   }, {
     audiences: ["customer-facing", "internal-support", "mixed"];
     capability: "read-provider-object";
     description: "Reads Shopify Admin GraphQL records such as shop, order, customer, product, and draft order nodes.";
     exposesSensitiveData: true;
     label: "Read Shopify records";
     providerObjects: [{
        kind: "shopifyShop";
        label: "Shopify Shop";
      }, {
        kind: "shopifyOrder";
        label: "Shopify Order";
      }, {
        kind: "shopifyCustomer";
        label: "Shopify Customer";
      }, {
        kind: "shopifyProduct";
        label: "Shopify Product";
     }];
     requiresCredential: true;
   }, {
     audiences: ["internal-support", "mixed"];
     capability: "search-provider-object";
     description: "Searches Shopify orders, customers, and products with SDK-user-supplied Admin GraphQL queries.";
     exposesSensitiveData: true;
     label: "Search Shopify records";
     providerObjects: [{
        kind: "shopifyOrder";
        label: "Shopify Order";
      }, {
        kind: "shopifyCustomer";
        label: "Shopify Customer";
      }, {
        kind: "shopifyProduct";
        label: "Shopify Product";
     }];
     requiresCredential: true;
   }, {
     audiences: ["internal-support", "mixed"];
     capability: "create-provider-object";
     changesWorkflow: true;
     description: "Creates Shopify draft orders through Admin GraphQL when SDK-user policy permits commerce mutations.";
     exposesSensitiveData: true;
     label: "Create Shopify draft orders";
     providerObjects: [{
        kind: "shopifyDraftOrder";
        label: "Shopify Draft Order";
     }];
     requiresCredential: true;
     sideEffect: true;
   }, {
     audiences: ["internal-support"];
     capability: "ecommerce.graphql";
     description: "Runs SDK-user-selected raw Admin GraphQL operations against the configured Shopify shop as an explicit escape hatch.";
     exposesSensitiveData: true;
     extension: true;
     label: "Run Shopify Admin GraphQL";
     providerObjects: [{
        kind: "shopifyGraphqlResult";
        label: "Shopify GraphQL Result";
     }];
     requiresCredential: true;
  }];
  category: "ecommerce";
  channelAudiences: ["customer-facing", "internal-support", "mixed"];
  coverage: {
     evidence: [{
        label: "Shopify Admin GraphQL API reference";
        url: "https://shopify.dev/docs/api/admin-graphql/latest";
      }, {
        label: "Shopify Admin API client";
        url: "https://www.npmjs.com/package/@shopify/admin-api-client";
      }, {
        label: "Shopify webhook HMAC validation";
        url: "https://shopify.dev/docs/apps/build/webhooks/subscribe/https#step-5-verify-the-webhook";
     }];
     notes: ["Coverage is limited to selected Shopify Admin GraphQL support operations backed by the official Shopify Admin API client.", "The raw Admin GraphQL client remains available as an explicit escape hatch; Storefront, Functions, Payments, REST Admin, and app lifecycle coverage are not implied.", "Generated Shopify per-root-field Admin GraphQL wrappers are intentionally not part of this package."];
     scope: "support-workflow-subset";
  };
  credentialRequirements: [{
     description: "The SDK user's Shopify admin shop domain, for example example.myshopify.com.";
     id: "shopify-shop-domain";
     label: "Shopify shop domain";
     required: true;
   }, {
     description: "Server-side Admin API access token with SDK-user-selected scopes.";
     id: "shopify-admin-access";
     label: "Shopify Admin API access";
     metadata: {
        scopeKind: "provider-oauth-scopes";
     };
     required: true;
     scopes: ["read_orders", "read_customers", "read_products", "write_draft_orders"];
   }, {
     description: "Server-side secret used to validate Shopify webhook HMAC signatures.";
     id: "shopify-webhook-secret";
     label: "Shopify webhook secret";
     required: false;
  }];
  directions: ["receive-only", "send-only", "bidirectional"];
  id: "ecommerce.shopify";
  limitations: ["The SDK user chooses Admin API version, scopes, webhook topics, customer visibility, fulfillment behavior, consent rules, and retention policy.", "This package provides normalized Admin GraphQL support operations and signature checks; it does not decide when to create draft orders, contact customers, issue discounts, refund orders, or expose commerce data."];
  maintainers: [{
     name: "Cognidesk";
     type: "official";
  }];
  metadata: {
     defaultGraphqlAdminApiVersion: "2026-04";
     docs: "https://shopify.dev/docs/api/admin-graphql/latest";
     implementation: {
        generatedFullProviderApiClone: false;
        optionalBroaderSdkPackage: "@shopify/shopify-api";
        rawClientEscapeHatch: true;
        sdkPackage: "@shopify/admin-api-client";
        strategy: "official-sdk";
     };
     rawProviderRequest: {
        acknowledgementRequired: true;
        capability: "ecommerce.graphql";
        coverage: "escape-hatch-not-full-provider-api";
     };
     sdkPackage: "@shopify/admin-api-client";
  };
  name: "Shopify";
  operations: [{
     alias: "ecommerce.event.receive";
     capability: "receive";
     exposesSensitiveData: true;
     providerObjects: [{
        kind: "shopifyWebhook";
     }];
   }, {
     alias: "ecommerce.order.read";
     capability: "read-provider-object";
     exposesSensitiveData: true;
     providerObjects: [{
        kind: "shopifyOrder";
     }];
     providerOperation: "AdminGraphQL node Order";
   }, {
     alias: "ecommerce.order.search";
     capability: "search-provider-object";
     exposesSensitiveData: true;
     providerObjects: [{
        kind: "shopifyOrder";
     }];
     providerOperation: "AdminGraphQL orders";
  }];
  packageName: "@cognidesk/integration-ecommerce-shopify";
  privacyNotes: ["Shopify records can include customer contact data, order contents, payment state, fulfillment state, addresses, discounts, and commerce workflow metadata.", "Admin API tokens and webhook secrets stay server-side; Studio receives only readiness status and policy-visible capability metadata."];
  provider: "shopify";
  trustLevel: "official";
}, unknown, never>;

Parameters

Parameter Type
options ShopifyEcommerceClientOptions

Returns

DefinedIntegration\<{ capabilities: [{ audiences: ["customer-facing", "internal-support", "mixed"]; capability: "receive"; description: "Validates and parses Shopify webhooks for SDK-user-owned commerce support workflows."; exposesSensitiveData: true; label: "Receive Shopify webhooks"; providerObjects: [{ kind: "shopifyWebhook"; label: "Shopify Webhook"; }]; requiresCredential: true; }, { audiences: ["customer-facing", "internal-support", "mixed"]; capability: "read-provider-object"; description: "Reads Shopify Admin GraphQL records such as shop, order, customer, product, and draft order nodes."; exposesSensitiveData: true; label: "Read Shopify records"; providerObjects: [{ kind: "shopifyShop"; label: "Shopify Shop"; }, { kind: "shopifyOrder"; label: "Shopify Order"; }, { kind: "shopifyCustomer"; label: "Shopify Customer"; }, { kind: "shopifyProduct"; label: "Shopify Product"; }]; requiresCredential: true; }, { audiences: ["internal-support", "mixed"]; capability: "search-provider-object"; description: "Searches Shopify orders, customers, and products with SDK-user-supplied Admin GraphQL queries."; exposesSensitiveData: true; label: "Search Shopify records"; providerObjects: [{ kind: "shopifyOrder"; label: "Shopify Order"; }, { kind: "shopifyCustomer"; label: "Shopify Customer"; }, { kind: "shopifyProduct"; label: "Shopify Product"; }]; requiresCredential: true; }, { audiences: ["internal-support", "mixed"]; capability: "create-provider-object"; changesWorkflow: true; description: "Creates Shopify draft orders through Admin GraphQL when SDK-user policy permits commerce mutations."; exposesSensitiveData: true; label: "Create Shopify draft orders"; providerObjects: [{ kind: "shopifyDraftOrder"; label: "Shopify Draft Order"; }]; requiresCredential: true; sideEffect: true; }, { audiences: ["internal-support"]; capability: "ecommerce.graphql"; description: "Runs SDK-user-selected raw Admin GraphQL operations against the configured Shopify shop as an explicit escape hatch."; exposesSensitiveData: true; extension: true; label: "Run Shopify Admin GraphQL"; providerObjects: [{ kind: "shopifyGraphqlResult"; label: "Shopify GraphQL Result"; }]; requiresCredential: true; }]; category: "ecommerce"; channelAudiences: ["customer-facing", "internal-support", "mixed"]; coverage: { evidence: [{ label: "Shopify Admin GraphQL API reference"; url: "https://shopify.dev/docs/api/admin-graphql/latest"; }, { label: "Shopify Admin API client"; url: "https://www.npmjs.com/package/@shopify/admin-api-client"; }, { label: "Shopify webhook HMAC validation"; url: "https://shopify.dev/docs/apps/build/webhooks/subscribe/https#step-5-verify-the-webhook"; }]; notes: ["Coverage is limited to selected Shopify Admin GraphQL support operations backed by the official Shopify Admin API client.", "The raw Admin GraphQL client remains available as an explicit escape hatch; Storefront, Functions, Payments, REST Admin, and app lifecycle coverage are not implied.", "Generated Shopify per-root-field Admin GraphQL wrappers are intentionally not part of this package."]; scope: "support-workflow-subset"; }; credentialRequirements: [{ description: "The SDK user's Shopify admin shop domain, for example example.myshopify.com."; id: "shopify-shop-domain"; label: "Shopify shop domain"; required: true; }, { description: "Server-side Admin API access token with SDK-user-selected scopes."; id: "shopify-admin-access"; label: "Shopify Admin API access"; metadata: { scopeKind: "provider-oauth-scopes"; }; required: true; scopes: ["read_orders", "read_customers", "read_products", "write_draft_orders"]; }, { description: "Server-side secret used to validate Shopify webhook HMAC signatures."; id: "shopify-webhook-secret"; label: "Shopify webhook secret"; required: false; }]; directions: ["receive-only", "send-only", "bidirectional"]; id: "ecommerce.shopify"; limitations: ["The SDK user chooses Admin API version, scopes, webhook topics, customer visibility, fulfillment behavior, consent rules, and retention policy.", "This package provides normalized Admin GraphQL support operations and signature checks; it does not decide when to create draft orders, contact customers, issue discounts, refund orders, or expose commerce data."]; maintainers: [{ name: "Cognidesk"; type: "official"; }]; metadata: { defaultGraphqlAdminApiVersion: "2026-04"; docs: "https://shopify.dev/docs/api/admin-graphql/latest"; implementation: { generatedFullProviderApiClone: false; optionalBroaderSdkPackage: "@shopify/shopify-api"; rawClientEscapeHatch: true; sdkPackage: "@shopify/admin-api-client"; strategy: "official-sdk"; }; rawProviderRequest: { acknowledgementRequired: true; capability: "ecommerce.graphql"; coverage: "escape-hatch-not-full-provider-api"; }; sdkPackage: "@shopify/admin-api-client"; }; name: "Shopify"; operations: [{ alias: "ecommerce.event.receive"; capability: "receive"; exposesSensitiveData: true; providerObjects: [{ kind: "shopifyWebhook"; }]; }, { alias: "ecommerce.order.read"; capability: "read-provider-object"; exposesSensitiveData: true; providerObjects: [{ kind: "shopifyOrder"; }]; providerOperation: "AdminGraphQL node Order"; }, { alias: "ecommerce.order.search"; capability: "search-provider-object"; exposesSensitiveData: true; providerObjects: [{ kind: "shopifyOrder"; }]; providerOperation: "AdminGraphQL orders"; }]; packageName: "@cognidesk/integration-ecommerce-shopify"; privacyNotes: ["Shopify records can include customer contact data, order contents, payment state, fulfillment state, addresses, discounts, and commerce workflow metadata.", "Admin API tokens and webhook secrets stay server-side; Studio receives only readiness status and policy-visible capability metadata."]; provider: "shopify"; trustLevel: "official"; }, unknown, never>


createShopifyEcommerceIntegrationFromClient()

function createShopifyEcommerceIntegrationFromClient(client): DefinedIntegration<{
  capabilities: [{
     audiences: ["customer-facing", "internal-support", "mixed"];
     capability: "receive";
     description: "Validates and parses Shopify webhooks for SDK-user-owned commerce support workflows.";
     exposesSensitiveData: true;
     label: "Receive Shopify webhooks";
     providerObjects: [{
        kind: "shopifyWebhook";
        label: "Shopify Webhook";
     }];
     requiresCredential: true;
   }, {
     audiences: ["customer-facing", "internal-support", "mixed"];
     capability: "read-provider-object";
     description: "Reads Shopify Admin GraphQL records such as shop, order, customer, product, and draft order nodes.";
     exposesSensitiveData: true;
     label: "Read Shopify records";
     providerObjects: [{
        kind: "shopifyShop";
        label: "Shopify Shop";
      }, {
        kind: "shopifyOrder";
        label: "Shopify Order";
      }, {
        kind: "shopifyCustomer";
        label: "Shopify Customer";
      }, {
        kind: "shopifyProduct";
        label: "Shopify Product";
     }];
     requiresCredential: true;
   }, {
     audiences: ["internal-support", "mixed"];
     capability: "search-provider-object";
     description: "Searches Shopify orders, customers, and products with SDK-user-supplied Admin GraphQL queries.";
     exposesSensitiveData: true;
     label: "Search Shopify records";
     providerObjects: [{
        kind: "shopifyOrder";
        label: "Shopify Order";
      }, {
        kind: "shopifyCustomer";
        label: "Shopify Customer";
      }, {
        kind: "shopifyProduct";
        label: "Shopify Product";
     }];
     requiresCredential: true;
   }, {
     audiences: ["internal-support", "mixed"];
     capability: "create-provider-object";
     changesWorkflow: true;
     description: "Creates Shopify draft orders through Admin GraphQL when SDK-user policy permits commerce mutations.";
     exposesSensitiveData: true;
     label: "Create Shopify draft orders";
     providerObjects: [{
        kind: "shopifyDraftOrder";
        label: "Shopify Draft Order";
     }];
     requiresCredential: true;
     sideEffect: true;
   }, {
     audiences: ["internal-support"];
     capability: "ecommerce.graphql";
     description: "Runs SDK-user-selected raw Admin GraphQL operations against the configured Shopify shop as an explicit escape hatch.";
     exposesSensitiveData: true;
     extension: true;
     label: "Run Shopify Admin GraphQL";
     providerObjects: [{
        kind: "shopifyGraphqlResult";
        label: "Shopify GraphQL Result";
     }];
     requiresCredential: true;
  }];
  category: "ecommerce";
  channelAudiences: ["customer-facing", "internal-support", "mixed"];
  coverage: {
     evidence: [{
        label: "Shopify Admin GraphQL API reference";
        url: "https://shopify.dev/docs/api/admin-graphql/latest";
      }, {
        label: "Shopify Admin API client";
        url: "https://www.npmjs.com/package/@shopify/admin-api-client";
      }, {
        label: "Shopify webhook HMAC validation";
        url: "https://shopify.dev/docs/apps/build/webhooks/subscribe/https#step-5-verify-the-webhook";
     }];
     notes: ["Coverage is limited to selected Shopify Admin GraphQL support operations backed by the official Shopify Admin API client.", "The raw Admin GraphQL client remains available as an explicit escape hatch; Storefront, Functions, Payments, REST Admin, and app lifecycle coverage are not implied.", "Generated Shopify per-root-field Admin GraphQL wrappers are intentionally not part of this package."];
     scope: "support-workflow-subset";
  };
  credentialRequirements: [{
     description: "The SDK user's Shopify admin shop domain, for example example.myshopify.com.";
     id: "shopify-shop-domain";
     label: "Shopify shop domain";
     required: true;
   }, {
     description: "Server-side Admin API access token with SDK-user-selected scopes.";
     id: "shopify-admin-access";
     label: "Shopify Admin API access";
     metadata: {
        scopeKind: "provider-oauth-scopes";
     };
     required: true;
     scopes: ["read_orders", "read_customers", "read_products", "write_draft_orders"];
   }, {
     description: "Server-side secret used to validate Shopify webhook HMAC signatures.";
     id: "shopify-webhook-secret";
     label: "Shopify webhook secret";
     required: false;
  }];
  directions: ["receive-only", "send-only", "bidirectional"];
  id: "ecommerce.shopify";
  limitations: ["The SDK user chooses Admin API version, scopes, webhook topics, customer visibility, fulfillment behavior, consent rules, and retention policy.", "This package provides normalized Admin GraphQL support operations and signature checks; it does not decide when to create draft orders, contact customers, issue discounts, refund orders, or expose commerce data."];
  maintainers: [{
     name: "Cognidesk";
     type: "official";
  }];
  metadata: {
     defaultGraphqlAdminApiVersion: "2026-04";
     docs: "https://shopify.dev/docs/api/admin-graphql/latest";
     implementation: {
        generatedFullProviderApiClone: false;
        optionalBroaderSdkPackage: "@shopify/shopify-api";
        rawClientEscapeHatch: true;
        sdkPackage: "@shopify/admin-api-client";
        strategy: "official-sdk";
     };
     rawProviderRequest: {
        acknowledgementRequired: true;
        capability: "ecommerce.graphql";
        coverage: "escape-hatch-not-full-provider-api";
     };
     sdkPackage: "@shopify/admin-api-client";
  };
  name: "Shopify";
  operations: [{
     alias: "ecommerce.event.receive";
     capability: "receive";
     exposesSensitiveData: true;
     providerObjects: [{
        kind: "shopifyWebhook";
     }];
   }, {
     alias: "ecommerce.order.read";
     capability: "read-provider-object";
     exposesSensitiveData: true;
     providerObjects: [{
        kind: "shopifyOrder";
     }];
     providerOperation: "AdminGraphQL node Order";
   }, {
     alias: "ecommerce.order.search";
     capability: "search-provider-object";
     exposesSensitiveData: true;
     providerObjects: [{
        kind: "shopifyOrder";
     }];
     providerOperation: "AdminGraphQL orders";
  }];
  packageName: "@cognidesk/integration-ecommerce-shopify";
  privacyNotes: ["Shopify records can include customer contact data, order contents, payment state, fulfillment state, addresses, discounts, and commerce workflow metadata.", "Admin API tokens and webhook secrets stay server-side; Studio receives only readiness status and policy-visible capability metadata."];
  provider: "shopify";
  trustLevel: "official";
}, unknown, never>;

Parameters

Parameter Type
client ShopifyEcommerceClient

Returns

DefinedIntegration\<{ capabilities: [{ audiences: ["customer-facing", "internal-support", "mixed"]; capability: "receive"; description: "Validates and parses Shopify webhooks for SDK-user-owned commerce support workflows."; exposesSensitiveData: true; label: "Receive Shopify webhooks"; providerObjects: [{ kind: "shopifyWebhook"; label: "Shopify Webhook"; }]; requiresCredential: true; }, { audiences: ["customer-facing", "internal-support", "mixed"]; capability: "read-provider-object"; description: "Reads Shopify Admin GraphQL records such as shop, order, customer, product, and draft order nodes."; exposesSensitiveData: true; label: "Read Shopify records"; providerObjects: [{ kind: "shopifyShop"; label: "Shopify Shop"; }, { kind: "shopifyOrder"; label: "Shopify Order"; }, { kind: "shopifyCustomer"; label: "Shopify Customer"; }, { kind: "shopifyProduct"; label: "Shopify Product"; }]; requiresCredential: true; }, { audiences: ["internal-support", "mixed"]; capability: "search-provider-object"; description: "Searches Shopify orders, customers, and products with SDK-user-supplied Admin GraphQL queries."; exposesSensitiveData: true; label: "Search Shopify records"; providerObjects: [{ kind: "shopifyOrder"; label: "Shopify Order"; }, { kind: "shopifyCustomer"; label: "Shopify Customer"; }, { kind: "shopifyProduct"; label: "Shopify Product"; }]; requiresCredential: true; }, { audiences: ["internal-support", "mixed"]; capability: "create-provider-object"; changesWorkflow: true; description: "Creates Shopify draft orders through Admin GraphQL when SDK-user policy permits commerce mutations."; exposesSensitiveData: true; label: "Create Shopify draft orders"; providerObjects: [{ kind: "shopifyDraftOrder"; label: "Shopify Draft Order"; }]; requiresCredential: true; sideEffect: true; }, { audiences: ["internal-support"]; capability: "ecommerce.graphql"; description: "Runs SDK-user-selected raw Admin GraphQL operations against the configured Shopify shop as an explicit escape hatch."; exposesSensitiveData: true; extension: true; label: "Run Shopify Admin GraphQL"; providerObjects: [{ kind: "shopifyGraphqlResult"; label: "Shopify GraphQL Result"; }]; requiresCredential: true; }]; category: "ecommerce"; channelAudiences: ["customer-facing", "internal-support", "mixed"]; coverage: { evidence: [{ label: "Shopify Admin GraphQL API reference"; url: "https://shopify.dev/docs/api/admin-graphql/latest"; }, { label: "Shopify Admin API client"; url: "https://www.npmjs.com/package/@shopify/admin-api-client"; }, { label: "Shopify webhook HMAC validation"; url: "https://shopify.dev/docs/apps/build/webhooks/subscribe/https#step-5-verify-the-webhook"; }]; notes: ["Coverage is limited to selected Shopify Admin GraphQL support operations backed by the official Shopify Admin API client.", "The raw Admin GraphQL client remains available as an explicit escape hatch; Storefront, Functions, Payments, REST Admin, and app lifecycle coverage are not implied.", "Generated Shopify per-root-field Admin GraphQL wrappers are intentionally not part of this package."]; scope: "support-workflow-subset"; }; credentialRequirements: [{ description: "The SDK user's Shopify admin shop domain, for example example.myshopify.com."; id: "shopify-shop-domain"; label: "Shopify shop domain"; required: true; }, { description: "Server-side Admin API access token with SDK-user-selected scopes."; id: "shopify-admin-access"; label: "Shopify Admin API access"; metadata: { scopeKind: "provider-oauth-scopes"; }; required: true; scopes: ["read_orders", "read_customers", "read_products", "write_draft_orders"]; }, { description: "Server-side secret used to validate Shopify webhook HMAC signatures."; id: "shopify-webhook-secret"; label: "Shopify webhook secret"; required: false; }]; directions: ["receive-only", "send-only", "bidirectional"]; id: "ecommerce.shopify"; limitations: ["The SDK user chooses Admin API version, scopes, webhook topics, customer visibility, fulfillment behavior, consent rules, and retention policy.", "This package provides normalized Admin GraphQL support operations and signature checks; it does not decide when to create draft orders, contact customers, issue discounts, refund orders, or expose commerce data."]; maintainers: [{ name: "Cognidesk"; type: "official"; }]; metadata: { defaultGraphqlAdminApiVersion: "2026-04"; docs: "https://shopify.dev/docs/api/admin-graphql/latest"; implementation: { generatedFullProviderApiClone: false; optionalBroaderSdkPackage: "@shopify/shopify-api"; rawClientEscapeHatch: true; sdkPackage: "@shopify/admin-api-client"; strategy: "official-sdk"; }; rawProviderRequest: { acknowledgementRequired: true; capability: "ecommerce.graphql"; coverage: "escape-hatch-not-full-provider-api"; }; sdkPackage: "@shopify/admin-api-client"; }; name: "Shopify"; operations: [{ alias: "ecommerce.event.receive"; capability: "receive"; exposesSensitiveData: true; providerObjects: [{ kind: "shopifyWebhook"; }]; }, { alias: "ecommerce.order.read"; capability: "read-provider-object"; exposesSensitiveData: true; providerObjects: [{ kind: "shopifyOrder"; }]; providerOperation: "AdminGraphQL node Order"; }, { alias: "ecommerce.order.search"; capability: "search-provider-object"; exposesSensitiveData: true; providerObjects: [{ kind: "shopifyOrder"; }]; providerOperation: "AdminGraphQL orders"; }]; packageName: "@cognidesk/integration-ecommerce-shopify"; privacyNotes: ["Shopify records can include customer contact data, order contents, payment state, fulfillment state, addresses, discounts, and commerce workflow metadata.", "Admin API tokens and webhook secrets stay server-side; Studio receives only readiness status and policy-visible capability metadata."]; provider: "shopify"; trustLevel: "official"; }, unknown, never>


createShopifyEcommerceLiveChecks()

function createShopifyEcommerceLiveChecks(options): {
  description: string;
  id: string;
  requiredCredentialIds: string[];
  run: Promise<{
     details: {
        id: unknown;
        myshopifyDomain: unknown;
        name: unknown;
     };
  }>;
}[];

Parameters

Parameter Type
options { client: Pick\<ShopifyEcommerceClient, "getShop">; }
options.client Pick\<ShopifyEcommerceClient, "getShop">

Returns

{ description: string; id: string; requiredCredentialIds: string[]; run: Promise\<{ details: { id: unknown; myshopifyDomain: unknown; name: unknown; }; }>; }[]


normalizeShopifyShopDomain()

function normalizeShopifyShopDomain(shopDomain): string;

Parameters

Parameter Type
shopDomain string

Returns

string


parseShopifyWebhook()

function parseShopifyWebhook(input): Promise<{
  apiVersion?: string;
  payload?: unknown;
  rawBody: string;
  shopDomain?: string;
  topic?: string;
  webhookId?: string;
}>;

Parameters

Parameter Type
input ShopifyWebhookParseInput

Returns

Promise\<{ apiVersion?: string; payload?: unknown; rawBody: string; shopDomain?: string; topic?: string; webhookId?: string; }>


shopifyEcommerceCredentialStatuses()

function shopifyEcommerceCredentialStatuses(input): {
  expiresAt?: string;
  message?: string;
  providerPackageId?: string;
  requirementId: string;
  scopes?: string[];
  state:   | "required"
     | "configured"
     | "permission-blocked"
     | "not-required"
     | "missing"
     | "expired"
     | "insufficient-scope"
     | "unavailable";
}[];

Parameters

Parameter Type
input ShopifyCredentialStatusInput

Returns

{ expiresAt?: string; message?: string; providerPackageId?: string; requirementId: string; scopes?: string[]; state: | "required" | "configured" | "permission-blocked" | "not-required" | "missing" | "expired" | "insufficient-scope" | "unavailable"; }[]


validateShopifyWebhookSignature()

function validateShopifyWebhookSignature(input): boolean;

Parameters

Parameter Type
input { hmac: string; rawBody: string | Buffer\<ArrayBufferLike>; webhookSecret: string; }
input.hmac string
input.rawBody string | Buffer\<ArrayBufferLike>
input.webhookSecret string

Returns

boolean

References

defaultShopifyGraphqlAdminApiVersion

Re-exports defaultShopifyGraphqlAdminApiVersion


shopifyEcommerceProviderManifest

Re-exports shopifyEcommerceProviderManifest