| mode | Deployment mode: staging, production, or sync-live | yes | — |
| store | Shopify store domain (e.g., your-store.myshopify.com or prefix). Can also be set as SHOPIFY_STORE_URL secret. | no | — |
| theme_path | Path to theme directory (e.g., "dist" if theme is in dist folder) | no | . |
| branch_staging | Branch name for staging deployments | no | staging |
| branch_production | Branch names for production deployments (comma-separated) | no | main,master |
| build_enabled | Enable build step | no | true |
| build_node_version | Node version to use | no | 22.x |
| build_package_manager | Package manager: npm, yarn, or pnpm | no | npm |
| build_command | Build command to run | no | npm ci && npm run build |
| build_cwd | Working directory for build | no | . |
| json_pull_globs | Glob patterns for JSON files to pull from live theme (newline-separated) | no | templates/*.json
locales/*.json
config/settings_data.json
sections/*.json
snippets/*.json
templates/customers/*.json
|
| json_sync_on_staging | Whether to sync JSON files from live theme during staging deployments | no | true |
| push_extra_ignore | Additional glob patterns to ignore during push (newline-separated) | no | "" |
| push_nodelete | Prevent deletion of files on remote | no | false |
| backup_enabled | Enable theme backups for production | no | true |
| backup_retention | Number of backups to retain | no | 3 |
| backup_prefix | Prefix for backup theme names | no | BACKUP_ |
| backup_timezone | Timezone for backup timestamps | no | UTC |
| deploy_ignore_json_on_prod | Ignore JSON files on production deploy (except default locale in Phase B) | no | true |
| deploy_push_default_locale | Push default locale (en.default.json/schema.json) in Phase B when ignoring JSON | no | true |
| deploy_allow_live_push | Allow pushing directly to live theme | no | false |
| versioning_enabled | Enable automatic version incrementing | no | true |
| versioning_format | Version format: "X.X.X" (no padding), "X.X.XX" (patch padding), or "X.XX.XX" (full padding, default) | no | X.XX.XX |
| versioning_source | Version source: "theme" (use theme name, default) or "release" (use latest GitHub release tag) | no | theme |
| versioning_start | Optional starting version (e.g., "3.0.0"). Only used with versioning_source: theme if theme has no version | no | — |
| sync_files | Files to sync: all (sync all theme files), json (only JSON files), custom (use sync_only_globs patterns) | no | all |
| sync_only_globs | Glob patterns for custom sync mode (newline-separated). Only used when sync_files is "custom". Supports negative patterns with ! prefix | no | "" |
| sync_exclude_pattern | Files to exclude when sync_files is "all" (newline-separated). Example: assets/compiled.css | no | "" |
| sync_branch | Branch name for sync commits | no | remote_changes |
| sync_target_branch | Target branch for PR in sync-live mode | no | staging |
| sync_commit_message | Commit message for sync | no | chore(sync): import live JSON changes |
| sync_type | Sync type: pr (create pull request) or push (direct push to branch) | no | pr |
| dry_run | Run in dry-run mode (no actual changes) | no | false |