integrations/ecommerce/shopify/dist
Interfaces
ShopifyConnection
Type Parameters
Properties
edges?
optional edges?: {
node?: TNode;
}[];
node?
pageInfo?
optional pageInfo?: {
endCursor?: string;
hasNextPage?: boolean;
};
endCursor?
optional endCursor?: string;
hasNextPage?
optional hasNextPage?: boolean;
Properties
optional adminAccessConfigured?: boolean;
scopes?
optional scopes?: string[];
shopDomain?
optional shopDomain?: string;
optional webhookSecretConfigured?: boolean;
ShopifyDraftOrderCreateResult
Properties
draftOrder?
optional draftOrder?: Record<string, unknown>;
userErrors
userErrors: {
field?: string[];
message: string;
}[];
field?
optional field?: string[];
message
Properties
input: Record<string, unknown>;
ShopifyEcommerceClient
Properties
rawClient
rawClient: AdminApiClient;
Methods
createDraftOrder()
createDraftOrder(input): Promise<ShopifyDraftOrderCreateResult>;
Parameters
Returns
Promise\<ShopifyDraftOrderCreateResult>
getCustomer()
getCustomer(input): Promise<Record<string, unknown>>;
Parameters
Returns
Promise\<Record\<string, unknown>>
getOrder()
getOrder(input): Promise<Record<string, unknown>>;
Parameters
Returns
Promise\<Record\<string, unknown>>
getProduct()
getProduct(input): Promise<Record<string, unknown>>;
Parameters
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
Returns
Promise\<ShopifyGraphqlResponse\<TData>>
parseWebhook()
parseWebhook(input): Promise<ShopifyWebhook>;
Parameters
Returns
Promise\<ShopifyWebhook>
searchCustomers()
searchCustomers(input?): Promise<ShopifySearchResult<Record<string, unknown>>>;
Parameters
Returns
Promise\<ShopifySearchResult\<Record\<string, unknown>>>
searchOrders()
searchOrders(input?): Promise<ShopifySearchResult<Record<string, unknown>>>;
Parameters
Returns
Promise\<ShopifySearchResult\<Record\<string, unknown>>>
searchProducts()
searchProducts(input?): Promise<ShopifySearchResult<Record<string, unknown>>>;
Parameters
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
Extends
Properties
operationName?
optional operationName?: string;
query
variables?
optional variables?: ShopifyGraphqlVariables;
Inherited from
ShopifyGraphqlRequestOptions.variables
ShopifyGraphqlResponse
Type Parameters
| Type Parameter |
Default type |
TData |
Record\<string, unknown> |
Properties
data?
errors?
optional errors?: unknown;
extensions?
optional extensions?: Record<string, unknown>;
optional headers?: Headers;
Properties
id
Properties
after?
first?
query?
ShopifySearchResult
Type Parameters
Properties
endCursor?
optional endCursor?: string;
hasNextPage
nodes
ShopifyWebhook
Properties
apiVersion?
optional apiVersion?: string;
payload?
optional payload?: unknown;
rawBody
shopDomain?
optional shopDomain?: string;
topic?
webhookId?
optional webhookId?: string;
Properties
apiVersion?
optional apiVersion?: string;
hmac?
request
request: string | Request | Buffer<ArrayBufferLike>;
requireSignature?
optional requireSignature?: boolean;
shopDomain?
optional shopDomain?: string;
topic?
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
ShopifyGraphqlVariables
type ShopifyGraphqlVariables = Record<string, unknown>;
type ShopifyRawAdminGraphqlInput = Partial<ShopifyGraphqlInput>;
Functions
createShopifyEcommerceClient()
function createShopifyEcommerceClient(options): ShopifyEcommerceClient;
Parameters
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
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
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
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
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
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