Create a store API account in BigCommerce, then paste the store hash and access token into Elastly. It syncs your catalog, variants, cost, inventory, customers, and realized orders.
Elastly reads your catalog, variants, per-item cost, inventory, customers, and realized orders from
BigCommerce over the Catalog and Orders APIs. Your catalog comes in at the variant level, which is
the unit BigCommerce prices.There is no app to install and nothing to submit for review. You create an API account in your own
control panel and give Elastly two values from it: a store hash and an access token.
Setup takes about five minutes. You need to be a store owner, or an admin who can create API accounts.
Log in to your BigCommerce control panel and read it straight off the address bar. In a URL like
https://store-abc123xyz.mybigcommerce.com/manage, the store hash is the part between store- and
.mybigcommerce.com, so here it is abc123xyz.You’ll see it again in the API path of the account you create next, so there’s nothing to memorize.
In the control panel go to Settings → API → Store-level API accounts, press Create API
account, and choose the V2/V3 API token type. Name it Elastly.You can jump straight there at store-your-store-hash.mybigcommerce.com/manage/settings/api-accounts.
2
Grant the access it needs
Set the OAuth scopes to exactly these. Nothing more, nothing less.
The API account scopes. Products needs Modify for write-back; the rest are read-only.
Scope
Level
What it’s for
Products
Modify
Catalog, variants, price, cost, categories, brands. Choose read-only if you never want write-back.
Orders
Read-only
Realized sales. The outcome the learning loop trains on.
Customers
Read-only
Who is buying, and their customer group. Groups seed per-segment pricing.
Information & settings
Read-only
Your store’s currency and plan, so Elastly prices in your currency and tells a trial store from a live one.
3
Save, and keep the file it gives you
Press Save. BigCommerce downloads a .txt file and shows the credentials on screen once.
The token is shown once. If you lose the access token you cannot get it back, and neither
can BigCommerce support. The client ID and client secret in that same file are not
substitutes for it. Your only option is to delete the API account and create a new one. Keep the
.txt until the token is pasted into Elastly.
In Elastly, open Integrations and press Connect BigCommerce.
2
Paste the two values
Enter your store hash and access token. Elastly checks them against your store immediately, so a
typo fails here rather than silently later.
3
Map your fields
Elastly takes you to the Field mapping page with sensible defaults already filled in from your
store. Review them, adjust anything that’s wrong, and save. See Field mapping.
Products and variants. Name, brand, category, and each variant’s SKU, price, GTIN, and MPN. The
variant is the priced unit. A product with no variants comes in as a single unit.
Cost. The Cost field on the variant (cost_price). This is your margin basis.
Inventory. Inventory level per variant, used by stock-aware strategies.
Customers. Name, email, and customer group. Groups seed per-segment pricing.
Orders. Realized, line-level sales. This is the outcome the learning loop trains on.
Cost is the gate. A variant with no cost has no margin basis, so Elastly leaves it unpriced
until a later sync brings a cost in. Set Cost on your products in BigCommerce before you expect
recommendations. If a whole catalog syncs without a single cost, Elastly says so on the connector
page rather than leaving you to wonder why nothing is priced.
BigCommerce doesn’t force you to set a SKU. If a product or variant has none, Elastly keys it on its
BigCommerce product and variant IDs instead. It still syncs, and its sales still reach the learning
loop. You don’t have to backfill SKUs to use Elastly.
Elastly only learns from orders that actually completed. By default that means Shipped,
Partially Shipped, and Completed. Cancelled, declined, refunded, and incomplete orders are
ignored, so a refund never teaches the engine that a price won.If your store fulfils differently, widen that set under the connector’s Sync settings.
If a scope is missing, BigCommerce quietly returns nothing for that record type, and the sync looks
like it simply found no customers or no orders. Open Diagnostics on the connector page and press
Check permissions. Elastly reads the granted scopes straight from your store and flags anything
missing. It runs the same check after every sync.Scopes can’t be changed on an existing API account. If one shows Missing, create a new account with
the right scopes and reconnect.
Write-back is off until you turn it on, so Elastly is read-only by default. When you enable it, an
approved price publishes straight to the variant in BigCommerce. Elastly sets the price and touches
nothing else on the product.
Turn it on by setting the connector’s direction to include out under Sync settings.
It needs the Products → modify scope. If you created the account read-only, make a new one with
modify and reconnect.
Every price is yours to approve first. Elastly never publishes a price you haven’t signed off on.
{"docsConfig":{"theme":"maple","$schema":"https://mintlify.com/docs.json","name":"Elastly","description":"Per-line, explainable prices that learn from your real sales outcomes. Connect your ERP or storefront, set your guardrails, and review every recommendation before it ships.","colors":{"primary":"#0e8c6b","light":"#38a584","dark":"#0a6b52"},"logo":{"light":"https://mintcdn.com/elastly/TCAF6SCAoWGBmt8G/logo/light.svg?fit=max\u0026auto=format\u0026n=TCAF6SCAoWGBmt8G\u0026q=85\u0026s=be24855115a1abf2492750720799e438","dark":"https://mintcdn.com/elastly/TCAF6SCAoWGBmt8G/logo/dark.svg?fit=max\u0026auto=format\u0026n=TCAF6SCAoWGBmt8G\u0026q=85\u0026s=6dd7958badb74f9a0a07d0223ac321c9","href":"https://elastly.io"},"favicon":"https://mintcdn.com/elastly/TCAF6SCAoWGBmt8G/favicon.svg?fit=max\u0026auto=format\u0026n=TCAF6SCAoWGBmt8G\u0026q=85\u0026s=30a72384ac56084e748f9adc52e08966","api":{"playground":{"display":"interactive","proxy":true},"examples":{"languages":["bash","typescript","python","php","java","go"]}},"navbar":{"links":[{"href":"https://elastly.io","label":"Website"}],"primary":{"type":"button","label":"Open dashboard","href":"https://app.elastly.io"}},"footer":{"socials":{"x":"https://x.com/elastlyio","github":"https://github.com/elastly","linkedin":"https://www.linkedin.com/company/elastly"}},"fonts":{"heading":{"family":"Bricolage Grotesque","weight":700},"body":{"family":"Geist"}},"styling":{"eyebrows":"section","latex":true},"contextual":{"options":["copy","view","chatgpt","claude","mcp"],"display":"header"},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"elastly","hasAudioNarration":false,"actualSubdomain":"elastly","customDomains":["elastly.io"],"gitSource":{"type":"github","owner":"elastly","repo":"elastly-docs","deployBranch":"main","contentDirectory":"","isPrivate":false,"mountPath":"","label":""},"chroma":{"collectionId":"574dccea-bb7a-4eb0-90f8-c76881ccb5ab","liveDeploymentHistoryId":"6ada4116b052f87fe57f8311","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ada4116b052f87fe57f8311"},"feedback":{"thumbs":true,"edits":true,"issues":true},"entitlements":{"AI_CHAT":{"status":"DISABLED"}},"buildId":"6ada4116b052f87fe57f8311","clientVersion":"0.0.4067","searchFilterCounts":[{"language":"default","tag":"SDKs","count":20},{"language":"default","tag":"Guides","count":12},{"language":"default","tag":"API reference","count":10},{"language":"default","tag":"Ingest","count":5},{"language":"default","tag":"Integrations","count":5},{"language":"default","tag":"Getting started","count":4},{"language":"default","tag":"Build a connector","count":4},{"language":"default","tag":"Write-backs","count":3},{"language":"default","tag":"Concepts","count":3},{"language":"default","tag":"Prices","count":1}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"/docs","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":true},"customCss":[],"page":{"pagePath":"connect-bigcommerce","slug":"/connect-bigcommerce","pageMetadata":{"title":"Connecting BigCommerce","sidebarTitle":"BigCommerce","description":"Create a store API account in BigCommerce, then paste the store hash and access token into Elastly. It syncs your catalog, variants, cost, inventory, customers, and realized orders.","icon":"/logos/bigcommerce.svg","href":"/connect-bigcommerce"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Create a store API account in BigCommerce, then paste the store hash and access token into Elastly. It syncs your catalog, variants, cost, inventory, customers, and realized orders.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,li:`li`,p:`p`,strong:`strong`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,..._provideComponents(),...props.components},{Frame,Heading,Info,Note,OptimizedImage,Step,Steps,Table,Warning}=_components;if(!Frame)_missingMdxReference(`Frame`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Info)_missingMdxReference(`Info`,true);if(!Note)_missingMdxReference(`Note`,true);if(!OptimizedImage)_missingMdxReference(`OptimizedImage`,true);if(!Step)_missingMdxReference(`Step`,true);if(!Steps)_missingMdxReference(`Steps`,true);if(!Table)_missingMdxReference(`Table`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsx(_components.p,{children:`Elastly reads your catalog, variants, per-item cost, inventory, customers, and realized orders from\nBigCommerce over the Catalog and Orders APIs. Your catalog comes in at the variant level, which is\nthe unit BigCommerce prices.`}),`\n`,_jsxs(_components.p,{children:[`There is no app to install and nothing to submit for review. You create an API account in your own\ncontrol panel and give Elastly two values from it: a `,_jsx(_components.strong,{children:`store hash`}),` and an `,_jsx(_components.strong,{children:`access token`}),`.`]}),`\n`,_jsx(Info,{children:_jsx(_components.p,{children:`Setup takes about five minutes. You need to be a store owner, or an admin who can create API accounts.`})}),`\n`,_jsx(Heading,{level:`2`,id:`find-your-store-hash`,children:`Find your store hash`}),`\n`,_jsxs(_components.p,{children:[`Log in to your `,_jsx(_components.a,{href:`https://login.bigcommerce.com`,children:`BigCommerce control panel`}),` and read it straight off the address bar. In a URL like\n`,_jsx(_components.code,{children:`https://store-abc123xyz.mybigcommerce.com/manage`}),`, the store hash is the part between `,_jsx(_components.code,{children:`store-`}),` and\n`,_jsx(_components.code,{children:`.mybigcommerce.com`}),`, so here it is `,_jsx(_components.code,{children:`abc123xyz`}),`.`]}),`\n`,_jsx(_components.p,{children:`You’ll see it again in the API path of the account you create next, so there’s nothing to memorize.`}),`\n`,_jsx(Heading,{level:`2`,id:`create-the-api-account`,children:`Create the API account`}),`\n`,_jsxs(Steps,{children:[_jsxs(Step,{title:`Open API accounts`,children:[_jsxs(_components.p,{children:[`In the control panel go to `,_jsx(_components.strong,{children:`Settings → API → Store-level API accounts`}),`, press `,_jsx(_components.strong,{children:`Create API\naccount`}),`, and choose the `,_jsx(_components.strong,{children:`V2/V3 API token`}),` type. Name it `,_jsx(_components.code,{children:`Elastly`}),`.`]}),_jsxs(_components.p,{children:[`You can jump straight there at `,_jsx(_components.code,{children:`store-your-store-hash.mybigcommerce.com/manage/settings/api-accounts`}),`.`]})]}),_jsxs(Step,{title:`Grant the access it needs`,children:[_jsx(_components.p,{children:`Set the OAuth scopes to exactly these. Nothing more, nothing less.`}),_jsx(Frame,{caption:`The API account scopes. Products needs Modify for write-back; the rest are read-only.`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/elastly/FNdPRD8XPP-Hi5N6/art/bigcommerce-scopes.png?fit=max\u0026auto=format\u0026n=FNdPRD8XPP-Hi5N6\u0026q=85\u0026s=ede23f74d234ec7ab3b2166bef5e5bb5`,alt:`BigCommerce store-level API account scopes: Products Modify, Orders read-only, Customers read-only, Information and settings read-only.`,\"data-og-width\":`1456`,width:`1456`,\"data-og-height\":`926`,height:`926`,\"data-path\":`art/bigcommerce-scopes.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/elastly/FNdPRD8XPP-Hi5N6/art/bigcommerce-scopes.png?w=280\u0026fit=max\u0026auto=format\u0026n=FNdPRD8XPP-Hi5N6\u0026q=85\u0026s=2c753b3a60a66651411f6a333021dff0 280w, https://mintcdn.com/elastly/FNdPRD8XPP-Hi5N6/art/bigcommerce-scopes.png?w=560\u0026fit=max\u0026auto=format\u0026n=FNdPRD8XPP-Hi5N6\u0026q=85\u0026s=da96f8b168de58d8402614e28ca7f65d 560w, https://mintcdn.com/elastly/FNdPRD8XPP-Hi5N6/art/bigcommerce-scopes.png?w=840\u0026fit=max\u0026auto=format\u0026n=FNdPRD8XPP-Hi5N6\u0026q=85\u0026s=e2b4e6e8691d9ce4f2603df59212763f 840w, https://mintcdn.com/elastly/FNdPRD8XPP-Hi5N6/art/bigcommerce-scopes.png?w=1100\u0026fit=max\u0026auto=format\u0026n=FNdPRD8XPP-Hi5N6\u0026q=85\u0026s=4024271c56bf053cb6d8df061c1ced5f 1100w, https://mintcdn.com/elastly/FNdPRD8XPP-Hi5N6/art/bigcommerce-scopes.png?w=1650\u0026fit=max\u0026auto=format\u0026n=FNdPRD8XPP-Hi5N6\u0026q=85\u0026s=a5486ea435e383951f1e2944eb8a577f 1650w, https://mintcdn.com/elastly/FNdPRD8XPP-Hi5N6/art/bigcommerce-scopes.png?w=2500\u0026fit=max\u0026auto=format\u0026n=FNdPRD8XPP-Hi5N6\u0026q=85\u0026s=c8ef7477c384814f7d839ea35589cf4e 2500w`})}),_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Scope`}),_jsx(_components.th,{children:`Level`}),_jsx(_components.th,{children:`What it’s for`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Products`}),_jsx(_components.td,{children:`Modify`}),_jsx(_components.td,{children:`Catalog, variants, price, cost, categories, brands. Choose read-only if you never want write-back.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Orders`}),_jsx(_components.td,{children:`Read-only`}),_jsx(_components.td,{children:`Realized sales. The outcome the learning loop trains on.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Customers`}),_jsx(_components.td,{children:`Read-only`}),_jsx(_components.td,{children:`Who is buying, and their customer group. Groups seed per-segment pricing.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Information \u0026 settings`}),_jsx(_components.td,{children:`Read-only`}),_jsx(_components.td,{children:`Your store’s currency and plan, so Elastly prices in your currency and tells a trial store from a live one.`})]})]})]})]}),_jsxs(Step,{title:`Save, and keep the file it gives you`,children:[_jsxs(_components.p,{children:[`Press `,_jsx(_components.strong,{children:`Save`}),`. BigCommerce downloads a `,_jsx(_components.code,{children:`.txt`}),` file and shows the credentials on screen once.`]}),_jsx(Warning,{children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`The token is shown once.`}),` If you lose the access token you cannot get it back, and neither\ncan BigCommerce support. The client ID and client secret in that same file are `,_jsx(_components.strong,{children:`not`}),`\nsubstitutes for it. Your only option is to delete the API account and create a new one. Keep the\n`,_jsx(_components.code,{children:`.txt`}),` until the token is pasted into Elastly.`]})}),_jsx(_components.p,{children:`The file gives you both values you need:`}),_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Field`}),_jsx(_components.th,{children:`Example`}),_jsx(_components.th,{children:`Use it for`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Access Token`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`abc123def456...`})}),_jsx(_components.td,{children:`Paste straight into Elastly.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`API Path`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`https://api.bigcommerce.com/stores/abc123xyz/v3/`})}),_jsxs(_components.td,{children:[`The `,_jsx(_components.code,{children:`abc123xyz`}),` in it is your store hash.`]})]})]})]})]})]}),`\n`,_jsx(Heading,{level:`2`,id:`connect`,children:`Connect`}),`\n`,_jsxs(Steps,{children:[_jsx(Step,{title:`Open Integrations`,children:_jsxs(_components.p,{children:[`In Elastly, open `,_jsx(_components.a,{href:`https://app.elastly.io/integrations`,children:`Integrations`}),` and press `,_jsx(_components.strong,{children:`Connect BigCommerce`}),`.`]})}),_jsx(Step,{title:`Paste the two values`,children:_jsx(_components.p,{children:`Enter your store hash and access token. Elastly checks them against your store immediately, so a\ntypo fails here rather than silently later.`})}),_jsx(Step,{title:`Map your fields`,children:_jsxs(_components.p,{children:[`Elastly takes you to the `,_jsx(_components.strong,{children:`Field mapping`}),` page with sensible defaults already filled in from your\nstore. Review them, adjust anything that’s wrong, and save. See `,_jsx(_components.a,{href:`/field-mapping`,children:`Field mapping`}),`.`]})})]}),`\n`,_jsx(Heading,{level:`2`,id:`what-elastly-reads`,children:`What Elastly reads`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Products and variants.`}),` Name, brand, category, and each variant’s SKU, price, GTIN, and MPN. The\nvariant is the priced unit. A product with no variants comes in as a single unit.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Cost.`}),` The `,_jsx(_components.strong,{children:`Cost`}),` field on the variant (`,_jsx(_components.code,{children:`cost_price`}),`). This is your margin basis.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Inventory.`}),` Inventory level per variant, used by stock-aware strategies.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Customers.`}),` Name, email, and customer group. Groups seed per-segment pricing.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Orders.`}),` Realized, line-level sales. This is the outcome the learning loop trains on.`]}),`\n`]}),`\n`,_jsx(Note,{children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Cost is the gate.`}),` A variant with no cost has no margin basis, so Elastly leaves it unpriced\nuntil a later sync brings a cost in. Set `,_jsx(_components.strong,{children:`Cost`}),` on your products in BigCommerce before you expect\nrecommendations. If a whole catalog syncs without a single cost, Elastly says so on the connector\npage rather than leaving you to wonder why nothing is priced.`]})}),`\n`,_jsx(Heading,{level:`2`,id:`products-with-no-sku`,children:`Products with no SKU`}),`\n`,_jsx(_components.p,{children:`BigCommerce doesn’t force you to set a SKU. If a product or variant has none, Elastly keys it on its\nBigCommerce product and variant IDs instead. It still syncs, and its sales still reach the learning\nloop. You don’t have to backfill SKUs to use Elastly.`}),`\n`,_jsx(Heading,{level:`2`,id:`which-orders-count-as-a-sale`,children:`Which orders count as a sale`}),`\n`,_jsxs(_components.p,{children:[`Elastly only learns from orders that actually completed. By default that means `,_jsx(_components.strong,{children:`Shipped`}),`,\n`,_jsx(_components.strong,{children:`Partially Shipped`}),`, and `,_jsx(_components.strong,{children:`Completed`}),`. Cancelled, declined, refunded, and incomplete orders are\nignored, so a refund never teaches the engine that a price won.`]}),`\n`,_jsxs(_components.p,{children:[`If your store fulfils differently, widen that set under the connector’s `,_jsx(_components.strong,{children:`Sync settings`}),`.`]}),`\n`,_jsx(Heading,{level:`2`,id:`how-the-sync-runs`,children:`How the sync runs`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`On a schedule, unattended.`}),` Set the cadence and direction under the connector’s Sync settings.\nYou can pause auto-sync whenever you want.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Incremental.`}),` After the first full pull, each run only fetches records that changed since the\nlast watermark.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Environment-aware.`}),` Trial and prelaunch stores are detected and labelled Sandbox. Live stores\nshow Production.`]}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`verify-permissions`,children:`Verify permissions`}),`\n`,_jsxs(_components.p,{children:[`If a scope is missing, BigCommerce quietly returns nothing for that record type, and the sync looks\nlike it simply found no customers or no orders. Open `,_jsx(_components.strong,{children:`Diagnostics`}),` on the connector page and press\n`,_jsx(_components.strong,{children:`Check permissions`}),`. Elastly reads the granted scopes straight from your store and flags anything\nmissing. It runs the same check after every sync.`]}),`\n`,_jsx(_components.p,{children:`Scopes can’t be changed on an existing API account. If one shows Missing, create a new account with\nthe right scopes and reconnect.`}),`\n`,_jsx(Heading,{level:`2`,id:`price-write-back`,children:`Price write-back`}),`\n`,_jsx(_components.p,{children:`Write-back is off until you turn it on, so Elastly is read-only by default. When you enable it, an\napproved price publishes straight to the variant in BigCommerce. Elastly sets the price and touches\nnothing else on the product.`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`Turn it on by setting the connector’s direction to include `,_jsx(_components.strong,{children:`out`}),` under Sync settings.`]}),`\n`,_jsxs(_components.li,{children:[`It needs the `,_jsx(_components.strong,{children:`Products → modify`}),` scope. If you created the account read-only, make a new one with\nmodify and reconnect.`]}),`\n`,_jsx(_components.li,{children:`Every price is yours to approve first. Elastly never publishes a price you haven’t signed off on.`}),`\n`]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Connecting BigCommerce","sidebarTitle":"BigCommerce","description":"Create a store API account in BigCommerce, then paste the store hash and access token into Elastly. It syncs your catalog, variants, cost, inventory, customers, and realized orders.","icon":"/logos/bigcommerce.svg","href":"/connect-bigcommerce"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Find your store hash","slug":"find-your-store-hash","depth":2,"children":[]},{"title":"Create the API account","slug":"create-the-api-account","depth":2,"children":[]},{"title":"Connect","slug":"connect","depth":2,"children":[]},{"title":"What Elastly reads","slug":"what-elastly-reads","depth":2,"children":[]},{"title":"Products with no SKU","slug":"products-with-no-sku","depth":2,"children":[]},{"title":"Which orders count as a sale","slug":"which-orders-count-as-a-sale","depth":2,"children":[]},{"title":"How the sync runs","slug":"how-the-sync-runs","depth":2,"children":[]},{"title":"Verify permissions","slug":"verify-permissions","depth":2,"children":[]},{"title":"Price write-back","slug":"price-write-back","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":["/docs/_mintlify/custom/elastly/319ad22c285d018b/scripts/check-links.js"],"subdomain":"elastly","siteName":"Elastly","title":"Connecting BigCommerce - Elastly","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-07-18T16:49:09.234Z","originalFileLocation":"connect-bigcommerce.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Create a store API account in BigCommerce, then paste the store hash and access token into Elastly. It syncs your catalog, variants, cost, inventory, customers, and realized orders.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Elastly\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003cmeta data-mint-head name=\"robots\" content=\"noindex, nofollow\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/docs/mintlify-assets/_mintlify/favicons/elastly/SXoKbMIf2HF_akXR/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/docs/mintlify-assets/_mintlify/favicons/elastly/SXoKbMIf2HF_akXR/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/docs/mintlify-assets/_mintlify/favicons/elastly/SXoKbMIf2HF_akXR/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/docs/mintlify-assets/_mintlify/favicons/elastly/SXoKbMIf2HF_akXR/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/docs/mintlify-assets/_mintlify/favicons/elastly/SXoKbMIf2HF_akXR/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/docs/mintlify-assets/_mintlify/favicons/elastly/SXoKbMIf2HF_akXR/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/docs/mintlify-assets/_mintlify/favicons/elastly/SXoKbMIf2HF_akXR/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/docs/mintlify-assets/_mintlify/favicons/elastly/SXoKbMIf2HF_akXR/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/docs/mintlify-assets/_mintlify/favicons/elastly/SXoKbMIf2HF_akXR/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Connecting BigCommerce - Elastly\">\u003cmeta data-mint-head property=\"og:description\" content=\"Create a store API account in BigCommerce, then paste the store hash and access token into Elastly. It syncs your catalog, variants, cost, inventory, customers, and realized orders.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Elastly\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://elastly.io/docs/connect-bigcommerce\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://elastly.mintlify.app/_mintlify/api/og/v2?division=Integrations\u0026amp;title=Connecting+BigCommerce\u0026amp;description=Create+a+store+API+account+in+BigCommerce%2C+then+paste+the+store+hash+and+access+token+into+Elastly.+It+syncs+your+catalog%2C+variants%2C+cost%2C+inventory%2C+customers%2C\u0026amp;theme=985f5a4e184105ad24230309\u0026amp;signature=18f2da702de3260af68653b4566d2fe25f424670e0ff2b87946112542e615d36\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Connecting BigCommerce - Elastly\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Create a store API account in BigCommerce, then paste the store hash and access token into Elastly. It syncs your catalog, variants, cost, inventory, customers, and realized orders.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://elastly.mintlify.app/_mintlify/api/og/v2?division=Integrations\u0026amp;title=Connecting+BigCommerce\u0026amp;description=Create+a+store+API+account+in+BigCommerce%2C+then+paste+the+store+hash+and+access+token+into+Elastly.+It+syncs+your+catalog%2C+variants%2C+cost%2C+inventory%2C+customers%2C\u0026amp;theme=985f5a4e184105ad24230309\u0026amp;signature=18f2da702de3260af68653b4566d2fe25f424670e0ff2b87946112542e615d36\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/docs/mintlify-assets/_mintlify/favicons/elastly/SXoKbMIf2HF_akXR/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Elastly\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#0e8c6b\">\u003clink data-mint-head rel=\"canonical\" href=\"https://elastly.io/docs/connect-bigcommerce\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/docs/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/docs/connect-bigcommerce.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Elastly\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Elastly","nav":{"global":null,"tabs":[{"tab":"Guides","icon":"book-open","groups":[{"group":"Getting started","pages":[{"title":"Introduction","icon":"book-open","href":""},{"title":"Quickstart","icon":"rocket","href":"/quickstart"},{"title":"Connectors","icon":"plug","href":"/connectors"},{"title":"Field mapping","icon":"arrows-left-right","href":"/field-mapping"}]},{"group":"Concepts","pages":[{"title":"Pricing strategies","icon":"sliders","href":"/strategies"},{"title":"Guardrails \u0026 rules","icon":"shield-check","href":"/guardrails"},{"title":"Explainability","icon":"list-tree","href":"/explainability"}]},{"group":"Integrations","pages":[{"title":"Connecting NetSuite","sidebarTitle":"NetSuite","icon":"https://mintlify.s3.us-west-1.amazonaws.com/elastly/logos/netsuite.svg","href":"/connect-netsuite"},{"title":"Connecting Shopify","sidebarTitle":"Shopify","description":"Create an app for your store, install it, and paste its credentials into Elastly. It then syncs your catalog, variants, inventory, cost, customers, and realized orders.","icon":"https://mintlify.s3.us-west-1.amazonaws.com/elastly/logos/shopify.svg","href":"/connect-shopify"},{"title":"Connecting BigCommerce","sidebarTitle":"BigCommerce","icon":"https://mintlify.s3.us-west-1.amazonaws.com/elastly/logos/bigcommerce.svg","href":"/connect-bigcommerce"},{"title":"Connecting WooCommerce","sidebarTitle":"WooCommerce","description":"Generate a REST API key in WooCommerce, then paste your store URL, consumer key, and consumer secret into Elastly. It syncs your catalog, variations, stock, customers, and realized orders.","icon":"https://mintlify.s3.us-west-1.amazonaws.com/elastly/logos/woocommerce.svg","href":"/connect-woocommerce"},{"title":"Connecting Salla","sidebarTitle":"Salla","icon":"https://mintlify.s3.us-west-1.amazonaws.com/elastly/logos/salla.svg","href":"/connect-salla"}]}]},{"tab":"SDKs","icon":"code","pages":[{"title":"SDKs","href":"/sdks"}]},{"tab":"API reference","icon":"terminal","pages":[{"title":"API reference","href":"/api/overview"}]}]},"basePath":"","title":"Connecting BigCommerce - Elastly","buildId":"dpl_9yaRmq8qi7yyMZn9oEWmKEdYMvGZ","deploymentId":"dpl_9yaRmq8qi7yyMZn9oEWmKEdYMvGZ","dynamics":["07c022d89b","a74be98ba7"],"chunks":["Frame-DcbodgP9.js","DynamicMarkdown-BBrVIqs3.js","zoom-image-lightbox-BB8grMv9.js","lightbox-handle-r17bVUz3.js"]}