dist/cursor/bigcommerce-commerce/skills/bc-customers/SKILL.md
Work with BigCommerce customers — Customer API, customer groups, addresses, stored instruments, attributes, Customer Login API (SSO), and customer segmentation. Use when building customer-facing features or integrating customer data.
npx skillsauth add orcaqubits/agentic-commerce-claude-plugins bc-customersInstall 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:
site:developer.bigcommerce.com rest customers for Customers API referencehttps://developer.bigcommerce.com/docs/start/authentication/customer-login for Customer Login APIbigcommerce customer groups api for customer group management| Endpoint | Methods | Description |
|----------|---------|-------------|
| /v3/customers | GET, POST, PUT, DELETE | Customer CRUD |
| /v3/customers/addresses | GET, POST, PUT, DELETE | Customer addresses |
| /v3/customers/attributes | GET, POST, PUT, DELETE | Custom attribute definitions |
| /v3/customers/attribute-values | GET, PUT, DELETE | Attribute values per customer |
| /v3/customers/form-field-values | GET, PUT | Form field values |
| /v3/customers/settings | GET, PUT | Customer settings |
Core fields:
id, email, first_name, last_name, companyphone, date_created, date_modifiedcustomer_group_id — assigned groupnotes — admin notesregistration_ip_addressauthentication — password or external authPOST /v3/customers
[{
"email": "[email protected]",
"first_name": "Jane",
"last_name": "Doe",
"authentication": {
"new_password": "SecurePassword123!"
}
}]
Note: V3 accepts arrays — batch create/update multiple customers at once.
Segment customers for pricing, access, and promotions:
GET /v2/customer_groups — list groupsPOST /v2/customer_groups — create groupcustomer_group_id field on customer| Group | Description | |-------|-------------| | Guest | Non-logged-in visitors | | Default | Default for new customers | | Custom groups | Merchant-defined segments |
POST /v3/customers/addresses
[{
"customer_id": 123,
"first_name": "Jane",
"last_name": "Doe",
"address1": "123 Main St",
"city": "Austin",
"state_or_province": "Texas",
"postal_code": "78701",
"country_code": "US",
"address_type": "residential"
}]
Create custom fields for customer profiles:
POST /v3/customers/attributes
[{
"name": "Loyalty Tier",
"type": "string"
}]
Types: string, number, date, dropdown
Set per customer:
PUT /v3/customers/attribute-values
[{
"customer_id": 123,
"attribute_id": 1,
"value": "Gold"
}]
Log customers into BigCommerce storefront from an external system:
https://{store_url}/login/token/{jwt}{
"iss": "your_client_id",
"iat": 1706140800,
"jti": "unique-request-id",
"operation": "customer_login",
"store_hash": "abc123",
"customer_id": 456,
"redirect_to": "/account",
"channel_id": 1
}
Sign with HMAC-SHA256 using your Client Secret.
For accessing customer-specific data in the GraphQL Storefront API:
POST /v3/storefront/api-token-customer-impersonationX-Bc-Customer-Id: {customer_id} headerid:in=1,2,3 — by IDsemail:[email protected],[email protected] — by emailsname:like=Jane — name searchcustomer_group_id:in=5,6 — by groupdate_created:min=2024-01-01 — date rangeinclude=addresses,attributes — include sub-resourcesFetch the BigCommerce Customers API reference and Customer Login API documentation for exact endpoints, JWT format, and attribute types 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.