---
next_cursor: eyJzY29yZSI6MCwic2VxIjoxNTk3LCJzaW5jZSI6bnVsbCwidG9vbCI6InNob3BpZnkiLCJ2IjoxfQ
has_more: true
next: https://sincecutoff.com/v1/changes.md?tool=shopify&score=0&cursor=eyJzY29yZSI6MCwic2VxIjoxNTk3LCJzaW5jZSI6bnVsbCwidG9vbCI6InNob3BpZnkiLCJ2IjoxfQ
items: 10
---
# sincecutoff.com changes: shopify

## shopify.app.toml webhook subscriptions accept an optional name (shopify, 2026-01-20)
Published 2026-10-19
- slug: shopify-app-toml-webhook-subscriptions-accept-an-optional-name-c5bf7c44ad46
- score: 0.94

How to use it:

When configuring a webhook subscription in `shopify.app.toml`, add a non-empty `name` to label it; then run `shopify app deploy` to deploy the configuration. [Webhook docs](https://shopify.dev/docs/apps/build/webhooks/subscribe)

Examples:

```
[[webhooks.subscriptions]]
name = "products-create"
topics = ["products/create"]
uri = "https://example.com/webhooks"

shopify app deploy
```

- why_it_matters: Configure a webhook subscription with a name in an app's `shopify.app.toml`.
- sources: <https://github.com/Shopify/cli/releases/tag/3.89.0>, <https://github.com/Shopify/cli/pull/6576>, <https://shopify.dev/docs/apps/build/webhooks/subscribe>
- gotchas: "Version: 3.89.0"; "name: Subscription label; Shopify echoes it in the `X-Shopify-Name` header. The current docs specify alphanumeric characters, hyphens, or underscores, up to 50 characters."; "topics (required): One or more webhook topic names to subscribe to."; "uri (required): Delivery destination: HTTPS URL, AWS EventBridge ARN, or Google Pub/Sub URI."; "Prerequisite: Each subscribed topic requires its corresponding access scope."; "The `name` field is optional and must be a non-empty string if provided."; "Docs conflict: The current docs limit `name` to 50 characters and allow only alphanumeric characters, hyphens, and underscores; the 3.89.0 release note only specifies a non-empty string. These added constraints are documented for a later/current version and are not applied here."

## Shopify CLI can skip the local dev console when opening a preview link (shopify, 2026-01-29)
Published 2026-10-19
- slug: shopify-cli-can-skip-the-local-dev-console-when-opening-a-preview-link-30b1afadff95
- score: 0.90

How to use it:

When running `shopify app dev`, set `SHOPIFY_SKIP_LOCAL_DEV_CONSOLE=1` and leave `SHOPIFY_CLI_1P_DEV` unset to open Admin from the preview link. [Shopify CLI PR #6786](https://github.com/Shopify/cli/pull/6786)

Examples:

```
SHOPIFY_SKIP_LOCAL_DEV_CONSOLE=1 pnpm shopify app dev
```

```
shopify app dev [flags]
```

- why_it_matters: When running `shopify app dev` and opening its preview link, open Admin instead of the local dev console.
- sources: <https://github.com/Shopify/cli/releases/tag/3.90.0>, <https://github.com/Shopify/cli/pull/6786>, <https://shopify.dev/docs/api/shopify-cli/app/app-dev>, <https://shopify.dev/docs/api/shopify-cli>
- gotchas: "Version: 3.90.0"; "SHOPIFY_SKIP_LOCAL_DEV_CONSOLE=1: Skips opening the local dev console from the preview link."; "SHOPIFY_CLI_1P_DEV: Must not be set for the skip behavior described in the PR to apply."; "Prerequisite: Shopify CLI requirements: Node.js 22.12+, a Node.js package manager (npm, Yarn 1.x, or pnpm), and Git 2.28.0+."; "Prerequisite: `shopify app dev` previews on a development store."; "The behavior is conditional on `SHOPIFY_CLI_1P_DEV=1` not being set."

## Shopify CLI GraphiQL allows custom Admin API headers (shopify, 2026-01-29)
Published 2026-10-19
- slug: shopify-cli-graphiql-allows-custom-admin-api-headers-626e89a607a8
- score: 0.97

How to use it:

When debugging an Admin API query in Shopify CLI GraphiQL, add `Shopify-Search-Query-Debug=1` in the header editor to forward that custom header to the Admin API. The editor is enabled in CLI GraphiQL; safe custom headers are forwarded while filtered headers are blocked.

Examples:

```
shopify app dev
# In GraphiQL, add Shopify-Search-Query-Debug: 1 in the header editor.
```

- why_it_matters: When debugging an Admin API query from the CLI's GraphiQL interface, pass a custom debugging header.
- before: CLI GraphiQL did not allow passing custom headers; its header editor had been disabled.
- sources: <https://github.com/Shopify/cli/releases/tag/3.90.0>, <https://github.com/Shopify/cli/pull/6703>, <https://shopify.dev/docs/apps/build/apis/graphql-admin/api-exploration/admin-graphiql-explorer>, <https://shopify.dev/docs/api/shopify-cli/app/app-graphiql>
- gotchas: "Version: 3.90.0"; "Shopify-Search-Query-Debug: Example custom header allowed through to the Admin API for debugging."; "isHeadersEditorEnabled (required): GraphiQL component setting enabled to show the header editor."; "Prerequisite: Use Shopify CLI's local GraphiQL instance while running `shopify app dev`; it authenticates as the app and has the app's access scopes."; "Prerequisite: The app must be installed on the store."; "Problematic browser and hop-by-hop headers are filtered; proxy-controlled headers are not forwarded."

## Shopify CLI reads `extensions.supported_features.offline_mode` from TOML (shopify, 2026-01-29)
Published 2026-10-19
- slug: shopify-cli-reads-extensions-supported-features-offline-mode-from-toml-01d14171d421
- score: 0.93

How to use it:

For a POS extension that supports offline mode, set `offline_mode = true` under `[extensions.supported_features]` in its TOML, then deploy the app with `pnpm shopify app deploy --path <PATH_TO_APP>`.

Examples:

```
[extensions.supported_features]
offline_mode = true
```

```
pnpm shopify app deploy --path <PATH_TO_APP>
```

- why_it_matters: When declaring that a POS extension supports offline mode, set the feature in its TOML and deploy the app.
- sources: <https://github.com/Shopify/cli/releases/tag/3.90.0>, <https://github.com/Shopify/cli/pull/6765>, <https://shopify.dev/docs/api/shopify-cli/app/app-deploy>, <https://shopify.dev/docs/api/shopify-cli>
- gotchas: "Version: 3.90.0"; "extensions.supported_features.offline_mode: Boolean indicating whether the extension supports offline mode; the release note describes this for POS extensions."; "--path <value>: Path to the app directory."; "Prerequisite: Shopify CLI requirements: Node.js 22.12 or higher, a Node.js package manager (npm, Yarn 1.x, or pnpm), and Git 2.28.0 or higher."; "Prerequisite: The CLI deploy command builds the app, then deploys its configuration and extensions."; "The described `offline_mode` support is for POS extensions."; "The supplied text says the backend is already wired up to support this."

## Shopify CLI adds app execute and app bulk commands (shopify, 2026-02-11)
Published 2026-10-19
- slug: shopify-cli-adds-app-execute-and-app-bulk-commands-fd5fc939230c
- score: 0.96

How to use it:

When you’re working in a Shopify app and need to query the Admin API, run `shopify app execute` from the app directory with a GraphQL query and, optionally, a store domain. For large data sets, use `shopify app bulk execute` instead.

Examples:

```
shopify app execute --query '<GraphQL query>' [--store <store.myshopify.com>]
```

```
shopify app bulk execute --watch --query '<bulk GraphQL query>' [--store <store.myshopify.com>]
```

- why_it_matters: Run an Admin API query while working on a Shopify app.
- sources: <https://github.com/Shopify/cli/releases/tag/3.90.1>, <https://shopify.dev/docs/apps/build/apis/graphql-admin/api-exploration/admin-cli-app-execute>, <https://shopify.dev/docs/api/shopify-cli/app/app-execute>, <https://shopify.dev/docs/api/shopify-cli/app/app-bulk-execute>
- gotchas: "Version: 3.90.1"; "--query <value> (required): GraphQL query or mutation as a string; use either this or `--query-file`."; "--query-file <value> (required): Path to a file containing the GraphQL query or mutation; mutually exclusive with `--query`."; "--store <value>: Store’s myshopify.com domain. The app must be installed there; if omitted, the CLI prompts for a store. The guide says the default is the last-used dev store."; "--variables <value>: GraphQL variable values in JSON format; mutually exclusive with `--variable-file`."; "--variable-file <value>: Path to a JSON file containing GraphQL variables; mutually exclusive with `--variables`."; "--version <value>: Admin API version; defaults to the latest stable version."; "--watch: For `app bulk execute`, wait for the bulk operation results before exiting; defaults to false."; "Prerequisite: Run the command from the root of the app directory. Shopify’s guide requires Shopify CLI, the necessary API access scopes, and the app installed on the store."; "Prerequisite: The guide currently says to install the latest Shopify CLI; it does not give a minimum CLI version."

## shopify theme commands accept --listing (shopify, 2026-02-20)
Published 2026-10-19
- slug: shopify-theme-commands-accept-listing-b94bfdab8b21
- score: 0.92

How to use it:

For multi-preset themes, use `--listing <preset-name>` to apply preset files from `listings/[preset-name]` when running `theme dev`, `theme push`, or `theme share`.

Examples:

```
shopify theme dev --listing <preset-name>
```

```
shopify theme push --listing <preset-name>
```

```
shopify theme share --listing <preset-name>
```

- why_it_matters: Develop, publish, or share a theme listing using the Shopify theme CLI.
- sources: <https://github.com/Shopify/cli/releases/tag/3.91.0>, <https://shopify.dev/docs/api/shopify-cli/theme/theme-dev>, <https://shopify.dev/docs/api/shopify-cli/theme/theme-push>, <https://shopify.dev/docs/api/shopify-cli/theme/theme-share>, <https://shopify.dev/docs/storefronts/themes/tools/cli>
- gotchas: "Version: 3.91.0"; "--listing <value>: Listing preset for multi-preset themes; applies preset files from `listings/[preset-name]`."; "Prerequisite: Run `theme dev` and `theme push` from a directory matching Shopify's default theme folder structure."; "Prerequisite: For custom app token authentication, the app needs `read_themes` and `write_themes` scopes. Theme Access passwords or Shopify account credentials are also documented authentication methods."

## shopify app init supports non-interactive setup (shopify, 2026-04-02)
Published 2026-10-19
- slug: shopify-app-init-supports-non-interactive-setup-6634e9da40cf
- score: 0.99

How to use it:

When initializing an app without prompts, provide `--name` and `--organization-id`; with a Partners token, `--name` can be used without the organization ID. Add `--template` and, for a multi-flavor template, `--flavor`.

Examples:

```
shopify app init --organization-id <org-id> --name test --template remix --flavor javascript | cat
```

```
shopify app init --organization-id <org-id> --name test --template none | cat
```

```
export SHOPIFY_CLI_PARTNERS_TOKEN=<your-cli-token>
shopify app init --name test --template none | cat
```

- why_it_matters: Initialize a new Shopify app in a script or agent workflow that must avoid interactive prompts.
- before: `app init` had interactive prompts for organization selection, app selection/linking, and app naming that could not be bypassed.
- sources: <https://github.com/Shopify/cli/releases/tag/3.93.0>, <https://github.com/Shopify/cli/pull/6640>, <https://github.com/Shopify/cli/blob/3.93.0/packages/cli/README.md>, <https://github.com/Shopify/cli/tree/3.93.0>
- gotchas: "Version: 3.93.0"; "--name=<value> / SHOPIFY_FLAG_NAME (required): Name for the new app; skips app selection and creates a new app with this name."; "--organization-id=<value> / SHOPIFY_FLAG_ORGANIZATION_ID (required): Organization ID; suppresses organization selection. Use the ID in the Dev Dashboard URL. Omit when using a Partners token."; "--template=<value> / SHOPIFY_FLAG_TEMPLATE (required): Template to use; accepts `reactRouter`, `remix`, `none`, or a GitHub repository reference."; "--flavor=<value> / SHOPIFY_FLAG_TEMPLATE_FLAVOR: Selects a flavor of the chosen template; provide it when the template offers multiple flavors."; "SHOPIFY_CLI_PARTNERS_TOKEN: Partners token that permits omitting `--organization-id` with `--name`."; "Prerequisite: Use Shopify CLI 3.93.0 or later for this change."; "Prerequisite: Install Node.js and npm or another package manager to use Shopify CLI."; "The organization ID must be supplied unless using a partners token."; "The organization ID can be found in the Dev Dashboard URL."; "Docs conflict: Current Shopify docs describe non-interactive requirements that differ from the 3.93.0 release: they say `--name` and `--organization-id` are required unless `--client-id` is supplied, and list different template options. This card reflects version 3.93.0."

## shopify app validate checks app and extension configuration (shopify, 2026-04-02)
Published 2026-10-19
- slug: shopify-app-validate-checks-app-and-extension-configuration-c01622f103f5
- score: 0.97

How to use it:

When you need to check an app configuration and extension configurations against their schemas, run `shopify app validate` with the selected app context; use the listed flags to choose the app directory, config, or client ID, or reset settings.

Examples:

```
shopify app validate [--client-id <client-id> | -c <config>] [--no-color] [--path <app-directory>] [--reset] [--verbose]
```

- why_it_matters: Check an app repository's configuration and extension TOML files for schema errors without running `dev` or `deploy`.
- before: Run `shopify app dev` or `shopify app deploy` to trigger configuration validation as part of those workflows.
- sources: <https://github.com/Shopify/cli/releases/tag/3.93.0>, <https://github.com/Shopify/cli/pull/6934>, <https://github.com/Shopify/cli/blob/3.93.0/packages/cli/README.md>, <https://shopify.dev/docs/api/shopify-cli>
- gotchas: "Version: 3.93.0"; "--client-id <value>: Client ID of your app."; "-c, --config <value>: Name of the app configuration; environment variable: SHOPIFY_FLAG_APP_CONFIG."; "--path <value>: Path to your app directory."; "--reset: Reset all your settings."; "--no-color: Disable color output."; "--verbose: Increase output verbosity."; "Prerequisite: Shopify CLI installed. General CLI requirements: Node.js 22.12 or higher, a Node.js package manager (npm, Yarn 1.x, or pnpm), and Git 2.28.0 or higher."; "The command links to the user's app using the linked app context."; "Docs conflict: Current Shopify docs use `shopify app config validate`; the 3.93.0 release documentation specifies `shopify app validate`. Current docs also list flags absent from 3.93.0. Used the versioned 3.93.0 README for the card’s command and flags."

## shopify store auth and execute run store-scoped Admin API GraphQL (shopify, 2026-04-02)
Published 2026-10-19
- slug: shopify-store-auth-and-execute-run-store-scoped-admin-api-graphql-7519fe0db2bf
- score: 0.98

How to use it:

When a repository has no local Shopify app project, authenticate the store with the required Admin API scopes, then execute the GraphQL query using that stored auth. Add `--allow-mutations` for write operations.

Examples:

```
shopify store auth --store <store.myshopify.com> --scopes <comma-separated-scopes>
```

```
shopify store execute --store <store.myshopify.com> --query '<GraphQL query or mutation>'
```

- why_it_matters: Run a store-scoped Admin API GraphQL query or mutation from a repository that does not contain a local Shopify app project.
- sources: <https://github.com/Shopify/cli/releases/tag/3.93.0>, <https://github.com/Shopify/cli/pull/7122>, <https://shopify.dev/docs/api/shopify-cli/store/store-auth>, <https://shopify.dev/docs/api/shopify-cli/store/store-execute>
- gotchas: "Version: 3.93.0"; "`store auth --store` (required): The store’s myshopify.com domain."; "`store auth --scopes` (required): Comma-separated Admin API scopes to request for the app."; "`store execute --store` (required): The store’s myshopify.com domain."; "`store execute --query` / `-q`: GraphQL query or mutation as a string. Mutually exclusive with `--query-file`."; "`store execute --query-file`: Path to a file containing the GraphQL query or mutation. Mutually exclusive with `--query`."; "`store execute --variables` / `-v`: GraphQL variable values in JSON format. Mutually exclusive with `--variable-file`."; "`store execute --variable-file`: Path to a JSON file containing GraphQL variables. Mutually exclusive with `--variables`."; "`store execute --allow-mutations`: Allows GraphQL mutations to run against the store; required for write operations."; "Prerequisite: Run `shopify store auth` first to create stored authentication. Re-run it if the token is missing, expired, or lacks required scopes."; "Prerequisite: Request the Admin API scopes needed by the operation during authentication."; "Authentication uses a PKCE OAuth flow and stores online per-user auth for later store commands."; "Re-run `shopify store auth` if the stored token is missing, expires, or no longer has the required scopes."; "Write operations require `--allow-mutations`."

## shopify doc fetch downloads Shopify.dev Markdown documentation (shopify, 2026-06-23)
Published 2026-10-19
- slug: shopify-doc-fetch-downloads-shopify-dev-markdown-documentation-fd118c81e747
- score: 0.96

How to use it:

When implementing or debugging a Shopify project and you need a Shopify.dev document, run `shopify doc fetch --url <shopify.dev-url>` to print its Markdown; use `--output <path>` to save it to a file.

Examples:

```
shopify doc fetch --url https://shopify.dev/docs/api/shopify-cli
```

```
shopify doc fetch --url https://shopify.dev/docs/api/shopify-cli --output docs/shopify-cli.md
```

- why_it_matters: Fetch Shopify.dev documentation in Markdown while implementing or debugging code in a Shopify project.
- sources: <https://github.com/Shopify/cli/releases/tag/4.3.0>, <https://github.com/Shopify/cli/pull/7766>
- gotchas: "Version: 4.3.0"; "--url <url> (required): Shopify.dev URL of the document to fetch; only shopify.dev and its subdomains are allowed."; "--output <path>: Write the Markdown to a file instead of stdout; creates missing parent directories."; "Prerequisite: Requires network access. The public endpoint needs no authentication, app, or login."

Next: https://sincecutoff.com/v1/changes.md?tool=shopify&score=0&cursor=eyJzY29yZSI6MCwic2VxIjoxNTk3LCJzaW5jZSI6bnVsbCwidG9vbCI6InNob3BpZnkiLCJ2IjoxfQ
Save `next_cursor`; next visit, pass it to get only what was published since.
<!-- end of page -->
