dist/codex/bigcommerce-commerce/skills/bc-app-dev/SKILL.md
Build BigCommerce apps — single-click apps, OAuth flow, app callbacks, connector apps, control panel integration, and App Marketplace submission. Use when creating integrations that install via the BigCommerce App Marketplace.
npx skillsauth add orcaqubits/agentic-commerce-claude-plugins bc-app-devInstall 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/docs/integrations/apps for the apps guidesite:developer.bigcommerce.com apps guide auth for OAuth patternsbigcommerce single-click app tutorial for step-by-step implementationApps installed from the BigCommerce App Marketplace:
Simplified apps that don't embed UI in BigCommerce:
Inject JavaScript into the storefront without a full app:
code, scope, contextcode for a permanent access_token via POST to https://login.bigcommerce.com/oauth2/tokenaccess_token, store_hash, and scope for future API callsWhen the merchant opens your app in BigCommerce admin:
store_hash and user from the JWT payloadWhen the merchant uninstalls:
When a specific user is removed from a multi-user store:
POST to https://login.bigcommerce.com/oauth2/token:
{
"client_id": "your_client_id",
"client_secret": "your_client_secret",
"code": "temporary_auth_code",
"scope": "store_v2_products store_v2_orders",
"grant_type": "authorization_code",
"redirect_uri": "https://your-app.com/auth/callback",
"context": "stores/{store_hash}"
}
{
"access_token": "permanent_token",
"scope": "store_v2_products store_v2_orders",
"user": { "id": 123, "email": "[email protected]" },
"context": "stores/abc123",
"account_uuid": "..."
}
| Scope | Access |
|-------|--------|
| store_v2_products | Products, categories, brands |
| store_v2_orders | Orders, shipments |
| store_v2_customers | Customer data |
| store_v2_content | Pages, blog, redirects |
| store_v2_marketing | Coupons, gift certificates |
| store_v2_information | Store metadata |
| store_channel_settings | Channel/multi-storefront |
| store_cart | Cart operations |
| store_checkout | Checkout operations |
| store_payments | Payment processing |
| store_themes_manage | Theme operations |
Request minimum scopes necessary — principle of least privilege.
Your app loads in an iframe within the BigCommerce admin panel:
Content-Security-Policy headers to allow framing by *.bigcommerce.comBigCommerce provides a React component library for admin UIs:
@bigcommerce/big-design — buttons, forms, tables, modalsnpm install @bigcommerce/big-designFetch the BigCommerce apps guide and OAuth documentation for exact callback parameters, JWT structure, and submission requirements before implementing.
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.