Skip to main content
RapidDev - Software Development Agency
bubble-integrationsBubble API Connector

BigCommerce

Connect Bubble to BigCommerce by adding the API Connector plugin, creating two API groups — one for v2 endpoints (orders, shipments) and one for v3 endpoints (catalog, carts, channels) — both sharing the same store-hash base URL and a Private X-Auth-Token header. Fetch checkout redirect URLs on-demand from a Backend Workflow, never at page load, as they expire in 30 minutes and are single-use.

What you'll learn

  • How to create a BigCommerce API account and securely store the access token in Bubble's API Connector
  • Why BigCommerce has two API versions (v2 and v3) and how to organize them as separate Connector groups
  • How to build a product catalog page in Bubble using repeating groups bound to the v3 catalog endpoint
  • How to implement cart management and order workflows using Backend Workflows
  • How to safely generate single-use checkout redirect URLs on demand without caching
  • BigCommerce-specific gotchas: access token visibility, RFC 2822 date format, and checkout URL expiry
Book a free consultation
4.9Clutch rating
600+Happy partners
17+Countries served
190+Team members
Intermediate17 min read3–4 hoursE-commerceLast updated July 2026RapidDev Engineering Team
TL;DR

Connect Bubble to BigCommerce by adding the API Connector plugin, creating two API groups — one for v2 endpoints (orders, shipments) and one for v3 endpoints (catalog, carts, channels) — both sharing the same store-hash base URL and a Private X-Auth-Token header. Fetch checkout redirect URLs on-demand from a Backend Workflow, never at page load, as they expire in 30 minutes and are single-use.

Quick facts about this guide
FactValue
ToolBigCommerce
CategoryE-commerce
MethodBubble API Connector
DifficultyIntermediate
Time required3–4 hours
Last updatedJuly 2026

Two API Generations, One Bubble Integration

BigCommerce exposes its functionality through two distinct REST API versions that coexist in production: v2 handles operational data like orders, shipments, and store credit, while v3 handles the product catalog, cart management, checkout flows, and sales channels. Neither version covers everything — a Bubble app that handles the full commerce lifecycle will need calls from both. The good news is that both share the same base URL structure (https://api.bigcommerce.com/stores/{store_hash}) and the same authentication mechanism: a single X-Auth-Token access token generated from BigCommerce's API Accounts section. In Bubble, you set this token once as a Private shared header on each API Connector group and never think about it again. Bubble proxies all API Connector calls from its own servers, so the token is never exposed to visitors' browsers and CORS errors never occur. The integration has two operational considerations worth knowing upfront: first, checkout redirect URLs from the v3 cart endpoint expire after 30 minutes and are single-use, so they require a Backend Workflow that runs at the precise moment a user clicks checkout; second, API Workflows that make outbound calls count against Bubble's Workload Units, so catalog-sync operations on large product libraries should be scheduled as batch Backend Workflows rather than triggered per page load.

Integration method

Bubble API Connector

The Bubble API Connector calls the BigCommerce REST API using a store-hash base URL (https://api.bigcommerce.com/stores/{store_hash}) and an X-Auth-Token header marked Private — no plugin or external proxy required.

Prerequisites

  • An active BigCommerce store on a paid plan — API access requires a paid BigCommerce subscription (trial plans include API access for testing)
  • A BigCommerce API account with V2/V3 API Accounts token — create one in BigCommerce Admin → Advanced Settings → API Accounts
  • Your store hash — the alphanumeric string visible in your BigCommerce admin URL (e.g. https://store-{hash}.mybigcommerce.com) or on the API credentials page
  • A Bubble app on a paid plan if you need Backend Workflows (required for checkout redirect URL generation and any write operations you want to keep server-side)
  • The API Connector plugin installed in your Bubble app — it is free and published by Bubble itself

Step-by-step guide

1

Create a BigCommerce API Account and Save Your Credentials

In your BigCommerce admin panel, navigate to Advanced Settings → API Accounts. Click 'Create API Account' and choose 'V2/V3 API Token'. Give the token a descriptive name like 'Bubble Integration'. Under OAuth Scopes, select the permissions your Bubble app will need — at minimum: Products (read-only or modify), Orders (read-only or modify), and Carts (modify) if you are building cart functionality. After you click 'Save', BigCommerce shows you the access token exactly once on a credentials page. You must copy and save this token immediately — if you navigate away without saving it, you cannot recover it and must create a new API account entirely. Also copy your store hash from the API credentials page: it appears in the API path as /stores/{store_hash}. Store both values in a secure password manager before proceeding. Your store hash looks like a short alphanumeric string such as 'abc12def3g'.

Pro tip: Create a dedicated Bubble API account in BigCommerce rather than reusing a personal account token. This makes it easier to revoke or rotate credentials later without affecting other integrations.

Expected result: You have the store hash and a V2/V3 access token saved securely. The access token begins with the characters that BigCommerce displays once — it will not appear again in the admin.

2

Install the API Connector Plugin and Create Two API Groups

Open your Bubble app in the editor. Click the Plugins tab in the left sidebar, then click 'Add plugins'. Search for 'API Connector' — find the one published by Bubble (not third-party) and click Install. Once installed, the API Connector appears in your Plugins tab. Click on it to open the configuration panel. Click 'Add another API' twice to create two groups: name the first group 'BigCommerce v2' and the second 'BigCommerce v3'. For BigCommerce v2, set the root URL to https://api.bigcommerce.com/stores/YOUR_STORE_HASH/v2. For BigCommerce v3, set the root URL to https://api.bigcommerce.com/stores/YOUR_STORE_HASH/v3. Replace YOUR_STORE_HASH with the actual hash you copied in Step 1. On both groups, click 'Add shared headers', add a header named X-Auth-Token, paste your access token as the value, and check the 'Private' checkbox. The Private checkbox is critical — it tells Bubble to keep this header server-side and never send it to the browser. Also add a second shared header: Content-Type with value application/json (no Private checkbox needed for this one).

bigcommerce-v3-connector-config.json
1// BigCommerce v3 API Connector Group Configuration
2{
3 "groupName": "BigCommerce v3",
4 "rootURL": "https://api.bigcommerce.com/stores/YOUR_STORE_HASH/v3",
5 "sharedHeaders": [
6 {
7 "name": "X-Auth-Token",
8 "value": "YOUR_ACCESS_TOKEN",
9 "private": true
10 },
11 {
12 "name": "Content-Type",
13 "value": "application/json",
14 "private": false
15 },
16 {
17 "name": "Accept",
18 "value": "application/json",
19 "private": false
20 }
21 ]
22}

Pro tip: Setting up two separate groups (v2 and v3) rather than one combined group makes it much easier to identify which API version a call belongs to when you are debugging Workflow logs later.

Expected result: You see two API groups in the API Connector panel — BigCommerce v2 and BigCommerce v3 — each with the correct root URL and a Private X-Auth-Token header.

3

Add and Initialize a Test Call to Confirm Authentication

Before building any real functionality, verify that your credentials are working by adding and initializing a simple GET call. In the BigCommerce v3 group, click 'Add another call'. Name the call 'Get Products'. Set the method to GET and the path (relative to the root URL) to /catalog/products. Add two parameters: limit with value 1 and page with value 1. These are static values used only for initialization — you will make them dynamic later. Click 'Initialize call'. Bubble sends the actual HTTP request to BigCommerce and shows you the response structure. You should see a JSON object with a 'data' array containing one product and a 'meta' object with pagination info. Once Bubble detects the fields, click 'Save' on the call. If the initialization fails, the most common cause is a typo in the store hash in the root URL or the access token value in the header. Double-check both values. The error 'Unauthorized' (HTTP 401) always means wrong token or wrong store hash — not a Bubble configuration issue.

bigcommerce-products-response-example.json
1// Expected successful BigCommerce v3 GET /catalog/products?limit=1 response shape
2{
3 "data": [
4 {
5 "id": 77,
6 "name": "[Sample] Fog Linen Chambray Towel - Beige Stripe",
7 "type": "physical",
8 "sku": "SLCTBS",
9 "price": 49.00,
10 "sale_price": 0.00,
11 "retail_price": 0.00,
12 "inventory_level": 0,
13 "inventory_tracking": "none",
14 "availability": "available",
15 "is_visible": true,
16 "categories": [18]
17 }
18 ],
19 "meta": {
20 "pagination": {
21 "total": 11,
22 "count": 1,
23 "per_page": 1,
24 "current_page": 1,
25 "total_pages": 11
26 }
27 }
28}

Pro tip: Always initialize with limit=1 rather than the default (which can be up to 250 products). A smaller response initializes faster and reduces the chance of a timeout during the initialization call.

Expected result: Bubble shows you the detected fields from the BigCommerce response — you can see 'data', 'data's id', 'data's name', 'data's price', 'meta's pagination's total', and similar nested fields. The call is saved and ready to use in workflows.

4

Build a Product Catalog Page with Pagination

Now that authentication is confirmed, build a product catalog page. Create a new Bubble page called 'Catalog'. Add a Repeating Group element. In its data source, choose 'Get data from an external API' and select your BigCommerce v3 'Get Products' call. In the Repeating Group's parameters, set limit to a fixed value (e.g., 12) and page to a page-state variable you define. Create a page-level custom state called 'current_page' (type Number, default value 1). Wire the page parameter to this state so the Repeating Group fetches the correct page of results. Inside the Repeating Group, add an Image element for the product thumbnail and Text elements for the product name and price. For the Image source, map it to 'Current Cell's Get Products's data's images first item's url_thumbnail' — note that images is a separate nested object within each product. Add a 'Next Page' button that runs a workflow: Set State of current_page to 'current_page + 1'. Add a 'Previous Page' button that sets current_page to 'current_page - 1' (with a conditional preventing it from going below 1). For total pages, use the 'meta's pagination's total_pages' value from the API call response to conditionally hide the Next Page button when you are on the last page. Privacy rules note: if you cache any product data in a Bubble data type (for performance), go to Data tab → Privacy and set rules so that only authenticated users or appropriate roles can read cached product records.

Pro tip: BigCommerce product images are only available if you call the /catalog/products endpoint with the 'include=images' query parameter. Add include as a static parameter with value 'images' in your Get Products call and re-initialize to pick up the image fields.

Expected result: The Catalog page loads and displays 12 products from your BigCommerce store with images, names, and prices. The Next/Previous buttons allow navigation between pages of results.

5

Implement Cart Management via Backend Workflows

Cart operations in BigCommerce use the v3 cart endpoints and must run from Bubble Backend Workflows (available on paid Bubble plans) to keep cart IDs and customer data server-side. Set up the following API calls in your BigCommerce v3 group: (1) 'Create Cart' — POST to /carts with a JSON body containing the line items array; (2) 'Add Item to Cart' — POST to /carts/{cartId}/items; (3) 'Get Cart' — GET /carts/{cartId}. For each of these, mark the call as an 'Action' (not 'Data') in the 'Use as' dropdown in the API Connector. In Bubble, create a data type called 'Cart' with fields: bigcommerce_cart_id (text), user (User), created_date (date). When a user clicks 'Add to Cart' on your product page, trigger a Backend Workflow that calls 'Create Cart' (if no cart exists) or 'Add Item to Cart' (if a cart already exists), then saves or updates the Cart record in Bubble's database with the returned cartId. Store the cart ID in the database — not in page URL state or a cookie — to keep it secure. Use the returned cartId for all subsequent cart operations.

bigcommerce-cart-api-calls.json
1// BigCommerce v3 Create Cart API call body structure
2{
3 "line_items": [
4 {
5 "quantity": 1,
6 "product_id": "<productId dynamic>",
7 "variant_id": "<variantId dynamic>"
8 }
9 ],
10 "channel_id": 1
11}
12
13// Expected Create Cart response (extract cartId from here)
14{
15 "data": {
16 "id": "b20deef4-d8d4-4c99-8dc8-ff1d3baf4012",
17 "customer_id": 0,
18 "channel_id": 1,
19 "line_items": {
20 "physical_items": [
21 {
22 "id": "item_uuid",
23 "product_id": 77,
24 "quantity": 1,
25 "sale_price": 49.00
26 }
27 ]
28 }
29 }
30}

Pro tip: Set the channel_id parameter to 1 for the default BigCommerce storefront channel. If you are building a headless storefront on a different sales channel, use that channel's ID from your BigCommerce admin → Channel Manager.

Expected result: Clicking 'Add to Cart' on a product creates or updates a Cart record in your Bubble database with a valid BigCommerce cart ID. The workflow completes without errors and Bubble's Logs tab shows a successful 200/201 response from BigCommerce.

6

Generate Checkout Redirect URLs On-Demand from a Backend Workflow

This step covers the most BigCommerce-specific pattern in the entire integration: generating single-use checkout URLs. BigCommerce's headless checkout requires you to POST to /carts/{cartId}/redirect_urls, which returns a checkout URL that is valid for exactly 30 minutes and can only be used once. The critical architectural rule: never call this endpoint at page load and never cache the URL. Call it only at the moment the user actively clicks 'Proceed to Checkout'. In your BigCommerce v3 API Connector group, add a call named 'Get Checkout URL' — POST to /carts/{cartId}/redirect_urls with cartId as a dynamic parameter. Set it as an Action. Create a Backend Workflow called 'Generate Checkout URL' that takes a cartId as input. The workflow calls 'Get Checkout URL' and then uses the 'Navigate to' action to send the user to the returned checkout_url from the response. On your cart page in Bubble, add a 'Proceed to Checkout' button. In its workflow, use 'Schedule API Workflow' to trigger the 'Generate Checkout URL' Backend Workflow with the current user's cart ID from the Bubble database. The user will be redirected to BigCommerce's native checkout page where they complete payment. After payment, BigCommerce sends order confirmation webhooks — set those up in BigCommerce Admin → Store Setup → API Accounts → Webhooks if you need to update Bubble records on successful purchase. If you work with a high volume of orders and cart operations, be mindful that each Backend Workflow API call counts against your Bubble Workload Units budget — consider batching and scheduling catalog sync jobs during off-peak hours. The RapidDev team has built production Bubble apps with BigCommerce integrations at scale — if your project involves complex catalog management or multi-channel setup, reach out at rapidevelopers.com/contact for a free scoping call.

bigcommerce-checkout-redirect-call.json
1// BigCommerce POST /carts/{cartId}/redirect_urls — call this ON DEMAND only
2// Never cache the returned URL — it expires after 30 minutes and is single-use
3
4// API Connector call config:
5{
6 "method": "POST",
7 "path": "/carts/<cartId dynamic>/redirect_urls",
8 "headers": {
9 "X-Auth-Token": "<private>",
10 "Content-Type": "application/json",
11 "Accept": "application/json"
12 },
13 "body": {}
14}
15
16// Expected response:
17{
18 "data": {
19 "cart_url": "https://store-abc12.mybigcommerce.com/cart.php?action=addItem&...",
20 "checkout_url": "https://store-abc12.mybigcommerce.com/checkout?action=...",
21 "embedded_checkout_url": "https://store-abc12.mybigcommerce.com/embedded-checkout?..."
22 }
23}

Pro tip: BigCommerce v2 date filter parameters (like min_date_created for orders) require RFC 2822 format: 'Mon, 01 Jan 2024 00:00:00 +0000'. Bubble's built-in 'Format as date' expression defaults to ISO 8601 format — use a custom format string 'ddd, DD MMM YYYY HH:mm:ss +0000' in Bubble's date formatter before passing dates to any v2 order filter.

Expected result: Clicking 'Proceed to Checkout' triggers the Backend Workflow, which fetches a fresh redirect URL from BigCommerce and immediately navigates the user to BigCommerce's native checkout page. The URL is never stored in Bubble's database. The Workflow Logs tab shows a successful 201 response from the redirect_urls endpoint.

Common use cases

Custom Headless Storefront

Build a fully custom product catalog and shopping experience in Bubble that pulls live inventory from BigCommerce. Display products with categories, filters, and pagination using the v3 catalog API, then generate single-use checkout redirect URLs to hand off payment and fulfillment to BigCommerce's native checkout.

Bubble Prompt

Show me all products in the 'Outdoor Furniture' category from BigCommerce, sorted by price ascending, with pagination of 12 products per page.

Copy this prompt to try it in Bubble

Order Management Admin Panel

Give your operations team a Bubble-based dashboard to view, search, and update BigCommerce orders without logging into the BigCommerce admin. Use the v2 orders API to pull recent orders, display order details and line items, and update fulfillment status directly from Bubble workflows.

Bubble Prompt

Show all BigCommerce orders from the last 7 days with status 'Awaiting Fulfillment', sorted by creation date newest first.

Copy this prompt to try it in Bubble

Inventory Sync Tool

Build an internal Bubble app that your team uses to monitor and update BigCommerce stock levels. Fetch current inventory from the v3 catalog API, display low-stock alerts in a Bubble dashboard, and allow staff to submit stock adjustments that trigger PUT calls to update product inventory directly in BigCommerce.

Bubble Prompt

List all BigCommerce products with inventory below 10 units, grouped by category, and let me update the quantity directly from this panel.

Copy this prompt to try it in Bubble

Troubleshooting

Initialize call returns 'Unauthorized' or HTTP 401

Cause: The X-Auth-Token value is incorrect, the store hash in the root URL is wrong, or the API account was deleted or revoked in BigCommerce admin.

Solution: Go to BigCommerce Admin → Advanced Settings → API Accounts and verify the account still exists. Confirm the store hash matches the alphanumeric string in your admin URL. If you cannot find the original access token (it was only shown once), create a new API account and generate a fresh token. Update the X-Auth-Token header value in your Bubble API Connector group and re-initialize.

'There was an issue setting up your call' during Initialize — Bubble shows no fields detected

Cause: Your BigCommerce store has no products in the catalog (empty store) or the Initialize call timed out before receiving a response, so Bubble could not detect field names from the response.

Solution: Log in to BigCommerce admin and confirm there is at least one product in the catalog. If the store is empty, add a sample product first. If the store has products but initialization still fails, reduce the limit parameter to 1 and try again. You can also test the call directly by pasting the URL into a browser (with an API tool like Postman or Bruno) using your X-Auth-Token to confirm the API is returning data.

Cart checkout URL shows 'expired' or 'cart not found' when the user clicks the checkout link

Cause: The checkout redirect URL was fetched earlier (e.g., when the cart page loaded) and 30 minutes passed before the user clicked the checkout button, or the URL was used once already.

Solution: Restructure the workflow so the POST to /carts/{cartId}/redirect_urls is triggered only when the user clicks 'Proceed to Checkout' — not at page load, not on cart update, not in a scheduled refresh. The Backend Workflow should fetch the URL, navigate the user immediately, and never store the URL in the database. If there is latency in the Backend Workflow execution, set a loading indicator on the button to prevent double-clicks that would consume the single-use URL.

Order date filter returns no results or wrong results when using v2 Orders API

Cause: BigCommerce v2 requires RFC 2822 date format (Mon, 01 Jan 2024 00:00:00 +0000) for min_date_created and max_date_created parameters, but Bubble's date formatter outputs ISO 8601 by default.

Solution: In your API call parameters for date values, use Bubble's 'Format as date' expression with the custom format string: 'ddd, DD MMM YYYY HH:mm:ss +0000'. This produces the RFC 2822 string BigCommerce v2 expects. Test by initializing the call with a hardcoded RFC 2822 date string first to confirm the endpoint accepts it before switching to dynamic values.

API rate limit errors (HTTP 429) during product catalog fetches or order syncs

Cause: BigCommerce's standard plan allows 150 requests per 30-second window. Repeating Groups that load many pages, combined with Bubble Repeating Group cells each triggering their own data requests, can exceed this limit quickly.

Solution: Switch bulk data operations (product catalog sync, order pulls) from client-triggered repeating group calls to scheduled Backend Workflows that run during low-traffic periods and cache results in Bubble data types. Add a Wait action between batch API calls in loops. For the live product catalog, fetch at most one page at a time and implement on-demand pagination rather than loading all products at once.

Best practices

  • Store the BigCommerce access token as a Private header in the API Connector — never in a page input, URL parameter, or Bubble database field. Private headers stay server-side in Bubble's infrastructure.
  • Create separate API Connector groups for v2 and v3 endpoints. Mixing them in one group makes debugging harder and creates confusion about which API version a call belongs to.
  • Save your access token immediately after creating the BigCommerce API account — it is displayed exactly once and cannot be recovered. Store it in a team password manager, not just in Bubble.
  • Always fetch checkout redirect URLs on-demand at the moment the user clicks 'Checkout', never cache them. They expire after 30 minutes and are single-use.
  • Apply Bubble privacy rules to any data type that stores BigCommerce customer or order data. By default in Bubble, all users can read all data of a given type — restrict this to the record's owner or admin roles only.
  • Convert date parameters for v2 API calls (orders, shipments) to RFC 2822 format explicitly. Bubble's default date formatter outputs ISO 8601, which v2 endpoints reject silently or return empty results for.
  • Monitor Workload Units for Backend Workflows that make multiple BigCommerce API calls in loops (bulk updates, catalog syncs). Schedule heavy operations as off-peak recurring workflows rather than triggering them from user interactions.
  • Initialize API calls with limit=1 to confirm the response schema before building repeating groups, then set the actual limit parameter dynamically. Re-initialize after any change to the response structure.

Alternatives

Frequently asked questions

Do I need a paid BigCommerce plan to use the API?

Yes. BigCommerce requires a paid plan for API access. Trial plans also include API access for testing purposes. The specific API rate limits and features available depend on your plan tier — standard plans get 150 requests per 30-second window, and Enterprise plans have higher limits. There is no free plan that includes API access.

Why do I need two separate API Connector groups for BigCommerce?

BigCommerce's REST API has two distinct generations: v2 (orders, shipments, store credit) and v3 (catalog, carts, checkouts, channels). They have different path structures and in some cases different response formats. While you could put all calls in one group, creating two groups (BigCommerce v2 and BigCommerce v3) makes your integration much easier to manage, debug, and scale as you add more calls over time.

I lost my BigCommerce access token. How do I get it back?

You cannot recover a BigCommerce access token after it has been created — it is only shown once on the credentials page right after you create the API account. If you lost it, go to BigCommerce Admin → Advanced Settings → API Accounts, delete the old account, and create a new one. Update the X-Auth-Token header value in all your Bubble API Connector groups with the new token.

Do I need a paid Bubble plan for this integration?

For read-only operations (displaying products, browsing catalogs), you can run GET calls from client-side workflows on Bubble's free plan. However, Backend Workflows (API Workflows) — which are required for checkout redirect URL generation, cart write operations, and any recurring tasks — are only available on paid Bubble plans. If you are building a functional store with checkout, a paid Bubble plan is necessary.

Why does BigCommerce return an error on my date filter for orders?

BigCommerce v2 endpoints (including orders) require dates in RFC 2822 format: 'Mon, 01 Jan 2024 00:00:00 +0000'. Bubble's date formatter outputs ISO 8601 by default. Use Bubble's 'Format as date' expression with a custom format string 'ddd, DD MMM YYYY HH:mm:ss +0000' when constructing date parameters for v2 order queries.

Can I use BigCommerce's product images in Bubble's Image elements?

Yes, but you need to add include=images as a query parameter in your GET /catalog/products call and re-initialize the API call to pick up the image fields. Each product's images array contains thumbnailUrl, imageUrl, and smallThumbnailUrl fields. Add a conditional in Bubble to handle products that have no images, since thumbnailUrl can be empty for products added without images.

RapidDev

Talk to an Expert

Our team has built 600+ apps. Get personalized help with your project.

Book a free consultation

Integrations are where projects stall

We wire Bubble integrations like this one every week — auth, webhooks, edge cases included. Fixed-price builds from $13K, delivered in 6–10 weeks.

Talk to an integration engineer

We put the rapid in RapidDev

Need a dedicated strategic tech and growth partner? Discover what RapidDev can do for your business! Book a call with our team to schedule a free, no-obligation consultation. We'll discuss your project and provide a custom quote at no cost.