Help us improve
Share bugs, ideas, or general feedback.
From bigcommerce-commerce
Queries and mutates BigCommerce GraphQL Storefront API for products, carts, customers; manages auth tokens and customer impersonation for client-side storefront apps.
npx claudepluginhub orcaqubits/agentic-commerce-skills-plugins --plugin bigcommerce-commerceHow this skill is triggered — by the user, by Claude, or both
Slash command
/bigcommerce-commerce:bc-api-graphqlThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
**Fetch live docs**:
Executes direct GraphQL queries and mutations on Shopify Storefront API for custom storefront data fetching and cart operations when full UI control is needed, not for web components.
Use Shopify GraphQL Admin API for server CRUD on products/orders and Storefront API for client queries on products/cart, with versioning, rate limits, bulk ops, pagination.
Build headless BigCommerce storefronts using Catalyst Next.js template, GraphQL Storefront API, REST APIs, embedded checkout, and decoupled architecture patterns.
Share bugs, ideas, or general feedback.
Fetch live docs:
https://developer.bigcommerce.com/docs/storefront/graphql for GraphQL overviewsite:developer.bigcommerce.com graphql storefront api reference for schema referencebigcommerce graphql storefront token for token creationA client-side GraphQL API designed for storefront applications:
https://{store_domain}/graphql| Feature | GraphQL Storefront | REST API |
|---|---|---|
| Audience | Frontend/browser | Backend/server |
| Auth | Storefront token | API account token |
| Data shape | Client-defined | Server-defined |
| Rate limits | Complexity-based | Request count |
| Mutations | Cart, checkout, login | Full CRUD |
Create via REST API:
POST /v3/storefront/api-token
{
"channel_id": 1,
"expires_at": 1893456000,
"allowed_cors_origins": ["https://my-storefront.com"]
}
Returns a token to use as Authorization: Bearer {token} header.
For accessing customer-specific data (addresses, orders, wishlists):
POST /v3/storefront/api-token-customer-impersonation
{
"channel_id": 1,
"expires_at": 1893456000
}
Combine with X-Bc-Customer-Id header for customer-specific queries.
In Stencil themes, the GraphQL token is available automatically:
{{inject 'graphQLToken' settings.storefront_api.token}} in templates/api/storefront/graphql-token endpointquery Products($first: Int, $after: String) {
site {
products(first: $first, after: $after) {
edges {
node {
entityId
name
path
prices {
price { value currencyCode }
salePrice { value currencyCode }
}
defaultImage {
url(width: 500)
altText
}
}
}
pageInfo { hasNextPage endCursor }
}
}
}
query Product($productId: Int!) {
site {
product(entityId: $productId) {
entityId
name
description
prices { price { value currencyCode } }
images { edges { node { url(width: 800) altText } } }
productOptions { edges { node { entityId displayName } } }
variants { edges { node { entityId sku } } }
}
}
}
query Categories {
site {
categoryTree {
entityId
name
path
children { entityId name path }
}
}
}
query Cart {
site {
cart {
entityId
lineItems {
physicalItems {
entityId
name
quantity
listPrice { value currencyCode }
}
}
amount { value currencyCode }
}
}
}
query Customer {
customer {
entityId
firstName
lastName
email
addresses { edges { node { address1 city } } }
}
}
mutation AddToCart($cartId: String!, $lineItems: [CartLineItemInput!]!) {
cart {
addCartLineItems(input: {
cartEntityId: $cartId
data: { lineItems: $lineItems }
}) {
cart { entityId }
}
}
}
mutation CreateCart($lineItems: [CartLineItemInput!]!) {
cart {
createCart(input: { lineItems: $lineItems }) {
cart { entityId }
}
}
}
mutation Login($email: String!, $password: String!) {
login(email: $email, password: $password) {
result
customer { entityId firstName }
}
}
Uses Relay-style cursor pagination:
first: N — number of itemsafter: "cursor" — cursor from pageInfo.endCursorpageInfo { hasNextPage endCursor } — pagination metadataGraphQL queries have complexity limits instead of request-count rate limits:
first arguments to limit resultsSELECT * mentalityfirst + after) for large collectionserrors array of the GraphQL responseFetch the BigCommerce GraphQL Storefront API reference for the current schema, available queries/mutations, and authentication patterns before implementing.