bigcommerce-commerce/skills/bc-setup/SKILL.md
Set up a BigCommerce development environment — Stencil CLI, API credentials, sandbox stores, Catalyst, and developer tools. Use when starting a new BigCommerce project or configuring development tools.
npx skillsauth add orcaqubits/agentic-commerce-claude-plugins bc-setupInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Fetch live docs:
https://developer.bigcommerce.com/ for the developer center overviewsite:developer.bigcommerce.com stencil cli getting started for Stencil CLI setupbigcommerce sandbox store trial for sandbox/dev store optionsCreate API credentials at Store Admin > Advanced Settings > API Accounts:
https://api.bigcommerce.com/stores/{store_hash}/v3/X-Auth-Token header)npm install -g @bigcommerce/stencil-cli
Requires Node.js 18+ and npm.
stencil init
Prompts for:
https://my-store.mybigcommerce.com)Stores config in .stencil file (add to .gitignore).
| Command | Description |
|---------|-------------|
| stencil start | Start local development server with live reload |
| stencil bundle | Bundle theme for upload |
| stencil push | Push theme to store (with options to activate) |
| stencil pull | Download current live theme |
| stencil release | Release theme update |
cornerstone/ # Default theme (fork this)
├── assets/
│ ├── scss/ # Stylesheets
│ ├── js/ # JavaScript modules
│ └── img/ # Static images
├── templates/
│ ├── layout/ # Master layout templates
│ ├── pages/ # Page templates
│ ├── components/ # Reusable partials
│ └── ...
├── lang/ # Internationalization JSON
├── config.json # Theme configuration & variations
├── schema.json # Theme Editor schema
├── package.json # Node dependencies
└── .stencil # Local CLI config (gitignored)
npx create-catalyst-storefront@latest my-store
Creates a Next.js 14+ application pre-configured with:
Requires: Node.js 18+, BigCommerce store with Storefront API token.
For OAuth callback during development:
ngrok, cloudflared, or similar tunnelRegister apps at https://devtools.bigcommerce.com/:
BIGCOMMERCE_STORE_HASH=your_store_hash
BIGCOMMERCE_ACCESS_TOKEN=your_access_token
BIGCOMMERCE_CLIENT_ID=your_client_id
BIGCOMMERCE_CLIENT_SECRET=your_client_secret
BIGCOMMERCE_API_URL=https://api.bigcommerce.com/stores/{store_hash}/v3
Store in .env file (add to .gitignore). Never commit credentials.
.stencil and .env to .gitignorenpm update -g @bigcommerce/stencil-cliFetch the BigCommerce developer center and Stencil CLI docs for exact setup steps, supported Node.js versions, and current CLI options before setting up.
development
Build with Spree's headless Next.js storefront — the official `spree/storefront` repo (Next.js 16 App Router with Server Actions and Turbopack, React 19 Server Components, Tailwind CSS 4, TypeScript 5, `@spree/sdk`, Sentry), server-only auth (httpOnly JWT cookies + publishable key), MeiliSearch faceted catalog, one-page checkout with Apple/Google Pay/Klarna/Affirm/SEPA, multi-region market routing, GA4 + JSON-LD SEO, and Vercel/Docker deployment. Use when forking or customizing the storefront, or evaluating headless adoption.
tools
Build Spree extensions as Rails engines — gem scaffolding, `bin/rails g spree:extension`, mounting routes/migrations/assets, the modern `prepend` decorator pattern (`*_decorator.rb` with `self.prepended(base)`), generators (`spree:model_decorator`, `spree:controller_decorator`), the four customization surfaces in preference order (Events > Webhooks > Dependencies > Decorators), Spree::Dependencies for swapping service objects, gem release/versioning, and the deprecated Deface engine. Use when building a reusable Spree extension or adding non-trivial customization to an app.
development
Build with Spree's event bus and Webhooks 2.0 — `Spree::Events` publication, `Spree::Subscriber` DSL with `subscribes_to` and `on`, wildcard matching, lifecycle events (`{model}.created/.updated/.deleted` via `publishes_lifecycle_events`), the canonical event catalog (order.*, payment.*, shipment.*, product.*), Webhooks 2.0 endpoints, HMAC-SHA256 signing (`X-Spree-Webhook-Signature`), exponential-backoff retries, and Sidekiq job orchestration. Use when wiring event-driven business logic, building webhook consumers, or replacing ActiveSupport callback chains.
tools
Cross-cutting Spree development patterns — the customization preference hierarchy (Events > Webhooks > Dependencies > Decorators), `Spree::Dependencies` service-object swapping, the `_decorator.rb` + `prepend` + `self.prepended` idiom, idempotent subscribers and webhook receivers, multi-store scoping discipline, prefixed IDs, calculator polymorphism (shipping/promotion/tax share the base), service-object composition with `dry-monads` or simple results, why to avoid `class_eval` reopening and Deface, and Spree-on-Rails idioms (Hotwire/Turbo Stimulus, ActiveStorage, Action Cable, Sidekiq). Use when designing the architecture of a Spree extension or solving cross-cutting concerns.