integrations/ecommerce/shopify/dist/manifest
Variables
defaultShopifyGraphqlAdminApiVersion
const defaultShopifyGraphqlAdminApiVersion: "2026-04" = "2026-04";
shopifyEcommerceProviderManifest
const shopifyEcommerceProviderManifest: {
capabilities: {
audiences?: ("customer-facing" | "internal-support" | "mixed")[];
capability: string;
changesWorkflow?: boolean;
description?: string;
exposesSensitiveData?: boolean;
extension?: boolean;
label?: string;
metadata?: Record<string, unknown>;
providerObjects?: {
description?: string;
kind: string;
label?: string;
metadata?: Record<string, unknown>;
schemaName?: string;
}[];
requiresCredential?: boolean;
sideEffect?: boolean;
}[];
category: string;
channelAudiences: ("customer-facing" | "internal-support" | "mixed")[];
coverage: {
evidence: {
label: string;
url?: string;
}[];
notes: string[];
scope: | "support-workflow-subset"
| "provider-api-subset"
| "connector-required"
| "local-protocol"
| "full-provider-api";
};
credentialRequirements: {
description?: string;
id: string;
label?: string;
metadata?: Record<string, unknown>;
required: boolean;
scopes: string[];
}[];
directions: (
| "receive-only"
| "send-only"
| "inbound-only"
| "outbound-only"
| "bidirectional")[];
id: string;
limitations: string[];
maintainers: {
name: string;
type: "community" | "official" | "unknown" | "partner";
url?: string;
}[];
metadata?: Record<string, unknown>;
name: string;
operations: {
alias: string;
audience?: "customer-facing" | "internal-support" | "mixed";
audiences?: ("customer-facing" | "internal-support" | "mixed")[];
capability: string;
changesWorkflow?: boolean;
description?: string;
exposesSensitiveData?: boolean;
extension: boolean;
externallyVisible?: boolean;
inputSchema?: unknown;
inputSchemaName?: string;
inputSchemaRef?: string;
label?: string;
metadata?: Record<string, unknown>;
outputSchema?: unknown;
outputSchemaName?: string;
outputSchemaRef?: string;
providerObject?: string;
providerObjects?: {
description?: string;
kind: string;
label?: string;
metadata?: Record<string, unknown>;
schemaName?: string;
}[];
providerOperation?: string;
requiredPolicyIds?: string[];
requiresApproval?: boolean;
requiresCredential?: boolean;
sideEffect?: boolean;
}[];
packageName: string;
privacyNotes: string[];
provider: string;
trustLevel: "community" | "official" | "verified" | "experimental";
} & {
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";
}, {
alias: "ecommerce.customer.read";
capability: "read-provider-object";
exposesSensitiveData: true;
providerObjects: [{
kind: "shopifyCustomer";
}];
providerOperation: "AdminGraphQL customer";
}, {
alias: "ecommerce.customer.search";
capability: "search-provider-object";
exposesSensitiveData: true;
providerObjects: [{
kind: "shopifyCustomer";
}];
providerOperation: "AdminGraphQL customers";
}, {
alias: "ecommerce.product.read";
capability: "read-provider-object";
exposesSensitiveData: true;
providerObjects: [{
kind: "shopifyProduct";
}];
providerOperation: "AdminGraphQL node Product";
}, {
alias: "ecommerce.product.search";
capability: "search-provider-object";
exposesSensitiveData: true;
providerObjects: [{
kind: "shopifyProduct";
}];
providerOperation: "AdminGraphQL products";
}, {
alias: "ecommerce.draftOrder.create";
capability: "create-provider-object";
changesWorkflow: true;
exposesSensitiveData: true;
externallyVisible: true;
providerObjects: [{
kind: "shopifyDraftOrder";
}];
providerOperation: "AdminGraphQL draftOrderCreate";
requiresApproval: true;
sideEffect: true;
}, {
alias: "shopify.adminGraphql";
capability: "ecommerce.graphql";
exposesSensitiveData: true;
extension: true;
providerObjects: [{
kind: "shopifyGraphqlResult";
}];
}];
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";
};
Type Declaration
| Name |
Type |
capabilities |
{ audiences?: ("customer-facing" | "internal-support" | "mixed")[]; capability: string; changesWorkflow?: boolean; description?: string; exposesSensitiveData?: boolean; extension?: boolean; label?: string; metadata?: Record\<string, unknown>; providerObjects?: { description?: string; kind: string; label?: string; metadata?: Record\<string, unknown>; schemaName?: string; }[]; requiresCredential?: boolean; sideEffect?: boolean; }[] |
category |
string |
channelAudiences |
("customer-facing" | "internal-support" | "mixed")[] |
coverage |
{ evidence: { label: string; url?: string; }[]; notes: string[]; scope: | "support-workflow-subset" | "provider-api-subset" | "connector-required" | "local-protocol" | "full-provider-api"; } |
coverage.evidence |
{ label: string; url?: string; }[] |
coverage.notes |
string[] |
coverage.scope |
| "support-workflow-subset" | "provider-api-subset" | "connector-required" | "local-protocol" | "full-provider-api" |
credentialRequirements |
{ description?: string; id: string; label?: string; metadata?: Record\<string, unknown>; required: boolean; scopes: string[]; }[] |
directions |
( | "receive-only" | "send-only" | "inbound-only" | "outbound-only" | "bidirectional")[] |
id |
string |
limitations |
string[] |
maintainers |
{ name: string; type: "community" | "official" | "unknown" | "partner"; url?: string; }[] |
metadata? |
Record\<string, unknown> |
name |
string |
operations |
{ alias: string; audience?: "customer-facing" | "internal-support" | "mixed"; audiences?: ("customer-facing" | "internal-support" | "mixed")[]; capability: string; changesWorkflow?: boolean; description?: string; exposesSensitiveData?: boolean; extension: boolean; externallyVisible?: boolean; inputSchema?: unknown; inputSchemaName?: string; inputSchemaRef?: string; label?: string; metadata?: Record\<string, unknown>; outputSchema?: unknown; outputSchemaName?: string; outputSchemaRef?: string; providerObject?: string; providerObjects?: { description?: string; kind: string; label?: string; metadata?: Record\<string, unknown>; schemaName?: string; }[]; providerOperation?: string; requiredPolicyIds?: string[]; requiresApproval?: boolean; requiresCredential?: boolean; sideEffect?: boolean; }[] |
packageName |
string |
privacyNotes |
string[] |
provider |
string |
trustLevel |
"community" | "official" | "verified" | "experimental" |
Type Declaration
| Name |
Type |
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"; } |
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"; }] |
coverage.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."] |
coverage.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"; } |
metadata.defaultGraphqlAdminApiVersion |
"2026-04" |
metadata.docs |
"https://shopify.dev/docs/api/admin-graphql/latest" |
metadata.implementation |
{ generatedFullProviderApiClone: false; optionalBroaderSdkPackage: "@shopify/shopify-api"; rawClientEscapeHatch: true; sdkPackage: "@shopify/admin-api-client"; strategy: "official-sdk"; } |
metadata.implementation.generatedFullProviderApiClone |
false |
metadata.implementation.optionalBroaderSdkPackage |
"@shopify/shopify-api" |
metadata.implementation.rawClientEscapeHatch |
true |
metadata.implementation.sdkPackage |
"@shopify/admin-api-client" |
metadata.implementation.strategy |
"official-sdk" |
metadata.rawProviderRequest |
{ acknowledgementRequired: true; capability: "ecommerce.graphql"; coverage: "escape-hatch-not-full-provider-api"; } |
metadata.rawProviderRequest.acknowledgementRequired |
true |
metadata.rawProviderRequest.capability |
"ecommerce.graphql" |
metadata.rawProviderRequest.coverage |
"escape-hatch-not-full-provider-api" |
metadata.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"; }, { alias: "ecommerce.customer.read"; capability: "read-provider-object"; exposesSensitiveData: true; providerObjects: [{ kind: "shopifyCustomer"; }]; providerOperation: "AdminGraphQL customer"; }, { alias: "ecommerce.customer.search"; capability: "search-provider-object"; exposesSensitiveData: true; providerObjects: [{ kind: "shopifyCustomer"; }]; providerOperation: "AdminGraphQL customers"; }, { alias: "ecommerce.product.read"; capability: "read-provider-object"; exposesSensitiveData: true; providerObjects: [{ kind: "shopifyProduct"; }]; providerOperation: "AdminGraphQL node Product"; }, { alias: "ecommerce.product.search"; capability: "search-provider-object"; exposesSensitiveData: true; providerObjects: [{ kind: "shopifyProduct"; }]; providerOperation: "AdminGraphQL products"; }, { alias: "ecommerce.draftOrder.create"; capability: "create-provider-object"; changesWorkflow: true; exposesSensitiveData: true; externallyVisible: true; providerObjects: [{ kind: "shopifyDraftOrder"; }]; providerOperation: "AdminGraphQL draftOrderCreate"; requiresApproval: true; sideEffect: true; }, { alias: "shopify.adminGraphql"; capability: "ecommerce.graphql"; exposesSensitiveData: true; extension: true; providerObjects: [{ kind: "shopifyGraphqlResult"; }]; }] |
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" |
const shopifyEcommerceProviderManifestInput: {
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";
}, {
alias: "ecommerce.customer.read";
capability: "read-provider-object";
exposesSensitiveData: true;
providerObjects: [{
kind: "shopifyCustomer";
}];
providerOperation: "AdminGraphQL customer";
}, {
alias: "ecommerce.customer.search";
capability: "search-provider-object";
exposesSensitiveData: true;
providerObjects: [{
kind: "shopifyCustomer";
}];
providerOperation: "AdminGraphQL customers";
}, {
alias: "ecommerce.product.read";
capability: "read-provider-object";
exposesSensitiveData: true;
providerObjects: [{
kind: "shopifyProduct";
}];
providerOperation: "AdminGraphQL node Product";
}, {
alias: "ecommerce.product.search";
capability: "search-provider-object";
exposesSensitiveData: true;
providerObjects: [{
kind: "shopifyProduct";
}];
providerOperation: "AdminGraphQL products";
}, {
alias: "ecommerce.draftOrder.create";
capability: "create-provider-object";
changesWorkflow: true;
exposesSensitiveData: true;
externallyVisible: true;
providerObjects: [{
kind: "shopifyDraftOrder";
}];
providerOperation: "AdminGraphQL draftOrderCreate";
requiresApproval: true;
sideEffect: true;
}, {
alias: "shopify.adminGraphql";
capability: "ecommerce.graphql";
exposesSensitiveData: true;
extension: true;
providerObjects: [{
kind: "shopifyGraphqlResult";
}];
}];
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";
};
Type Declaration
| Name |
Type |
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"; } |
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"; }] |
coverage.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."] |
coverage.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"; } |
metadata.defaultGraphqlAdminApiVersion |
"2026-04" |
metadata.docs |
"https://shopify.dev/docs/api/admin-graphql/latest" |
metadata.implementation |
{ generatedFullProviderApiClone: false; optionalBroaderSdkPackage: "@shopify/shopify-api"; rawClientEscapeHatch: true; sdkPackage: "@shopify/admin-api-client"; strategy: "official-sdk"; } |
metadata.implementation.generatedFullProviderApiClone |
false |
metadata.implementation.optionalBroaderSdkPackage |
"@shopify/shopify-api" |
metadata.implementation.rawClientEscapeHatch |
true |
metadata.implementation.sdkPackage |
"@shopify/admin-api-client" |
metadata.implementation.strategy |
"official-sdk" |
metadata.rawProviderRequest |
{ acknowledgementRequired: true; capability: "ecommerce.graphql"; coverage: "escape-hatch-not-full-provider-api"; } |
metadata.rawProviderRequest.acknowledgementRequired |
true |
metadata.rawProviderRequest.capability |
"ecommerce.graphql" |
metadata.rawProviderRequest.coverage |
"escape-hatch-not-full-provider-api" |
metadata.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"; }, { alias: "ecommerce.customer.read"; capability: "read-provider-object"; exposesSensitiveData: true; providerObjects: [{ kind: "shopifyCustomer"; }]; providerOperation: "AdminGraphQL customer"; }, { alias: "ecommerce.customer.search"; capability: "search-provider-object"; exposesSensitiveData: true; providerObjects: [{ kind: "shopifyCustomer"; }]; providerOperation: "AdminGraphQL customers"; }, { alias: "ecommerce.product.read"; capability: "read-provider-object"; exposesSensitiveData: true; providerObjects: [{ kind: "shopifyProduct"; }]; providerOperation: "AdminGraphQL node Product"; }, { alias: "ecommerce.product.search"; capability: "search-provider-object"; exposesSensitiveData: true; providerObjects: [{ kind: "shopifyProduct"; }]; providerOperation: "AdminGraphQL products"; }, { alias: "ecommerce.draftOrder.create"; capability: "create-provider-object"; changesWorkflow: true; exposesSensitiveData: true; externallyVisible: true; providerObjects: [{ kind: "shopifyDraftOrder"; }]; providerOperation: "AdminGraphQL draftOrderCreate"; requiresApproval: true; sideEffect: true; }, { alias: "shopify.adminGraphql"; capability: "ecommerce.graphql"; exposesSensitiveData: true; extension: true; providerObjects: [{ kind: "shopifyGraphqlResult"; }]; }] |
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" |