How to use
- Copy the installation command and review the source package before installing it in your own agent environment.
- Check the source document for required tools, credentials and supported hosts.
- Describe your input and desired deliverable; review the output against the source material.
npx skills add https://github.com/TerminalSkills/skills --skill bigcommerceBefore you start
- Installation does not include a model subscription, API allowance or permission to access your files.
- Repository stars and installation counts describe activity, not an independent quality or security test.
Rendered from the source repository. Headings, examples, code, tables, links, and referenced images are preserved.
BigCommerce
Overview
BigCommerce is a hosted e-commerce platform with strong headless capabilities. Unlike Shopify, it includes more features out of the box (no app fees for basic needs), has a comprehensive REST + GraphQL API, and supports multi-storefront. Works as a backend for headless commerce with Next.js (BigCommerce's own starter is Catalyst) or any other frontend.
Instructions
Step 1: Storefront API (GraphQL)
The endpoint is https://store-{store_hash}.mybigcommerce.com/graphql for the default channel (or your storefront domain plus /graphql); other channels use store-{store_hash}-{channel_id}.mybigcommerce.com. Create a token in the control panel or with POST /v3/storefront/api-token on the management API. BigCommerce's current docs say server-side integrations created after June 30, 2026 should use private tokens rather than storefront tokens; check the GraphQL authentication page for which applies to you. Limits: query complexity 10,000, depth 16, at most 50 products per page. Try queries in Settings > API > Storefront API Playground first.
// lib/bigcommerce.ts — Fetch products via GraphQL Storefront API
const STOREFRONT_TOKEN = process.env.BC_STOREFRONT_TOKEN!
const STORE_HASH = process.env.BC_STORE_HASH!
export async function getProducts(limit = 12) {
const query = `
query Products($first: Int!) {
site {
products(first: $first) {
edges {
node {
entityId
name
path
prices { price { value currencyCode } }
defaultImage { url(width: 400) altText }
}
}
}
}
}
`
const res = await fetch(`https://store-${STORE_HASH}.mybigcommerce.com/graphql`, {
method: 'POST',
headers: {
'Content-Type': 'application/json',
Authorization: `Bearer ${STOREFRONT_TOKEN}`,
},
body: JSON.stringify({ query, variables: { first: limit } }),
})
const { data } = await res.json()
return data.site.products.edges.map(e => e.node)
}Step 2: Management API (REST)
// lib/bc-admin.ts — Server-side product and order management
const BC_TOKEN = process.env.BC_API_TOKEN!
const STORE_HASH = process.env.BC_STORE_HASH!
const BASE_URL = `https://api.bigcommerce.com/stores/${STORE_HASH}/v3`
// Create product
await fetch(`${BASE_URL}/catalog/products`, {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'X-Auth-Token': BC_TOKEN,
},
body: JSON.stringify({
name: 'Premium Headphones',
type: 'physical',
price: 199.99,
weight: 1.5,
categories: [23],
is_visible: true,
}),
})
// Get orders
// Orders are still the V2 API: /v2/orders, not /v3/orders
const orders = await fetch(`https://api.bigcommerce.com/stores/${STORE_HASH}/v2/orders?status_id=11`, {
headers: { 'X-Auth-Token': BC_TOKEN, Accept: 'application/json' },
}).then(r => r.json()) // status 11 = Awaiting FulfillmentCreate the API account under Settings > API > Store-level API accounts and grant only the scopes you need (Products, Orders). The token is shown once; keep it in an environment variable.
Step 3: Next.js Commerce
BigCommerce's official headless storefront is Catalyst (Next.js, App Router, GraphQL). It needs Node.js 24 and pnpm via Corepack.
corepack enable pnpm
pnpm create @bigcommerce/catalyst@latest
cd my-catalyst-store # the directory name you chose
pnpm run dev # http://localhost:3000The CLI asks for your store hash and channel and writes .env.local. The old Vercel commerce template no longer ships a BigCommerce provider, so do not follow guides that use it.
Examples
Example 1: Show the newest products on a headless page
User request: "List the 8 newest products from my BigCommerce store in Next.js"
Use getProducts(8) from Step 1 in a Server Component with process.env.BC_STORE_HASH and BC_STOREFRONT_TOKEN set. The result is an array like { entityId: 113, name: 'Premium Headphones', path: '/premium-headphones/', prices: { price: { value: 199.99, currencyCode: 'USD' } } }. For newest-first ordering add sortBy: NEWEST inside products(...), which the playground will validate.
Example 2: Add a product and find orders waiting to ship
User request: "Create a headphones product and list orders awaiting fulfillment"
Run the Step 2 calls from a server script with BC_API_TOKEN set. The POST returns 201 with the new product's data.id; the orders call returns an array of order objects with id, status, total_inc_tax and date_created, an empty array (or 204) if nothing is waiting.
Guidelines
- Plans (checked October 2026): Core from $29/month billed annually ($39 monthly), Growth $79, Scale $299, Performance custom. Sales caps trigger automatic upgrades. Transaction fees are $0 with embedded providers such as Stripe and PayPal, but open payment providers carry 2.0% (Core) down to 0.6% (Scale). Re-check pricing before quoting it.
- Multi-storefront: run multiple stores from one account with different domains and catalogs.
- GraphQL Storefront API is read-focused (catalog, carts, customers); use the REST Management API for admin writes, and never expose management tokens in browser code.
- Built-in features (reviews, wishlists, faceted search) that cost extra on Shopify.

