Connect your Salla store to Elastly in one click. Approve access once and it syncs your catalog, cost, stock, customers, and realized orders.
Elastly reads your catalog, per-item cost, stock, customers, and realized orders from Salla over the
Salla Merchant API. Salla is the simplest connector to set up: there is no app to create and no
credentials to paste. You approve access once and Elastly handles the rest.
Setup takes about a minute. You need to be the store owner, or a user who can approve apps for the
store.
Elastly runs a single Salla app that every store connects through, so you never build one yourself.
Connecting is a standard OAuth approval:
1
Start from Elastly
In Elastly, open Integrations and press Connect Salla. Elastly sends you to Salla to
approve.
2
Approve on Salla
Salla shows you the access Elastly is asking for and which store you’re connecting. Approve it.
Salla's approval screen. Approve once and Elastly handles the rest.
3
Land back in Elastly
Salla sends you back and Elastly exchanges the approval for a token, reads your store details, and
starts the first sync. It takes you to the Field mapping page to review the defaults. See
Field mapping.
Elastly keeps a refresh token so the scheduled sync keeps running without you re-approving. If you
remove Elastly from your store on Salla’s side, the connection stops syncing.
Salla lists these when you approve. Elastly asks for exactly what it needs to price and nothing more.
Scope
What it’s for
settings.read
Your store’s currency and whether it’s a demo store.
customers.read
Who is buying, so pricing can vary by customer.
orders.read
Realized sales. The outcome the learning loop trains on.
products.read_write
Reads your catalog, and writes an approved price back when you enable write-back.
offline_access
Lets the sync keep running on a schedule without re-approving.
Read-write is requested, but write-back stays off. Elastly asks for product write access up
front so you never have to reconnect to turn write-back on later. It writes nothing to your store
until you enable it and approve a price. See Price write-back.
Elastly maps Salla’s fields onto its canonical schema. The defaults fit a standard store, and you can
change any of them on the Field mapping page.
Products. SKU, name, category, brand, price, GTIN, and stock. The product is the priced unit.
Cost. The product’s cost field, which is your margin basis.
Customers. Full name, city, and country. City seeds the customer’s segment and region.
Orders. Realized, line-level sales. This is the signal the learning loop uses to tune margins.
Salla has no quotes, so like the other storefronts, Elastly learns from realized orders.
Cost is the gate. A product 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 Salla before you expect recommendations.
If an approval is missing a scope, Salla 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 checks the scopes granted on your approval and flags anything
missing. It runs the same check after every sync. If a scope shows Missing, reconnect from
Integrations and approve again.
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 product in Salla. 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 stays
paused until you do.
It uses the products.read_write access you already approved when you connected, so there’s
nothing extra to grant.
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-salla","slug":"/connect-salla","pageMetadata":{"title":"Connecting Salla","sidebarTitle":"Salla","description":"Connect your Salla store to Elastly in one click. Approve access once and it syncs your catalog, cost, stock, customers, and realized orders.","icon":"/logos/salla.svg","href":"/connect-salla"},"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: \"Connect your Salla store to Elastly in one click. Approve access once and it syncs your catalog, cost, stock, 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}=_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);return _jsxs(_Fragment,{children:[_jsx(_components.p,{children:`Elastly reads your catalog, per-item cost, stock, customers, and realized orders from Salla over the\nSalla Merchant API. Salla is the simplest connector to set up: there is no app to create and no\ncredentials to paste. You approve access once and Elastly handles the rest.`}),`\n`,_jsx(Info,{children:_jsx(_components.p,{children:`Setup takes about a minute. You need to be the store owner, or a user who can approve apps for the\nstore.`})}),`\n`,_jsx(Heading,{level:`2`,id:`how-it-connects`,children:`How it connects`}),`\n`,_jsx(_components.p,{children:`Elastly runs a single Salla app that every store connects through, so you never build one yourself.\nConnecting is a standard OAuth approval:`}),`\n`,_jsxs(Steps,{children:[_jsx(Step,{title:`Start from Elastly`,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 Salla`}),`. Elastly sends you to Salla to\napprove.`]})}),_jsxs(Step,{title:`Approve on Salla`,children:[_jsx(_components.p,{children:`Salla shows you the access Elastly is asking for and which store you’re connecting. Approve it.`}),_jsx(Frame,{caption:`Salla's approval screen. Approve once and Elastly handles the rest.`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/elastly/FNdPRD8XPP-Hi5N6/art/salla-connect.png?fit=max\u0026auto=format\u0026n=FNdPRD8XPP-Hi5N6\u0026q=85\u0026s=4254c6efc27335d0630b150876a278f9`,alt:`Salla approval screen: Elastly requesting to read catalog, customers, and orders, and to update product prices.`,\"data-og-width\":`1056`,width:`1056`,\"data-og-height\":`830`,height:`830`,\"data-path\":`art/salla-connect.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/elastly/FNdPRD8XPP-Hi5N6/art/salla-connect.png?w=280\u0026fit=max\u0026auto=format\u0026n=FNdPRD8XPP-Hi5N6\u0026q=85\u0026s=0193fdaa066885a99d866948f6742c91 280w, https://mintcdn.com/elastly/FNdPRD8XPP-Hi5N6/art/salla-connect.png?w=560\u0026fit=max\u0026auto=format\u0026n=FNdPRD8XPP-Hi5N6\u0026q=85\u0026s=dfb8f1a6100aeeeca65215897a3a182c 560w, https://mintcdn.com/elastly/FNdPRD8XPP-Hi5N6/art/salla-connect.png?w=840\u0026fit=max\u0026auto=format\u0026n=FNdPRD8XPP-Hi5N6\u0026q=85\u0026s=9aaff3f018196143cf64d75df69bd8ed 840w, https://mintcdn.com/elastly/FNdPRD8XPP-Hi5N6/art/salla-connect.png?w=1100\u0026fit=max\u0026auto=format\u0026n=FNdPRD8XPP-Hi5N6\u0026q=85\u0026s=5fac109f01432ae78b9aa0b756fb3405 1100w, https://mintcdn.com/elastly/FNdPRD8XPP-Hi5N6/art/salla-connect.png?w=1650\u0026fit=max\u0026auto=format\u0026n=FNdPRD8XPP-Hi5N6\u0026q=85\u0026s=ccc5bc418f241ddca03d728e68eeeeed 1650w, https://mintcdn.com/elastly/FNdPRD8XPP-Hi5N6/art/salla-connect.png?w=2500\u0026fit=max\u0026auto=format\u0026n=FNdPRD8XPP-Hi5N6\u0026q=85\u0026s=83410620e87bc6fb20edec05679b2cf7 2500w`})})]}),_jsx(Step,{title:`Land back in Elastly`,children:_jsxs(_components.p,{children:[`Salla sends you back and Elastly exchanges the approval for a token, reads your store details, and\nstarts the first sync. It takes you to the `,_jsx(_components.strong,{children:`Field mapping`}),` page to review the defaults. See\n`,_jsx(_components.a,{href:`/field-mapping`,children:`Field mapping`}),`.`]})})]}),`\n`,_jsx(_components.p,{children:`Elastly keeps a refresh token so the scheduled sync keeps running without you re-approving. If you\nremove Elastly from your store on Salla’s side, the connection stops syncing.`}),`\n`,_jsx(Heading,{level:`2`,id:`the-access-it-asks-for`,children:`The access it asks for`}),`\n`,_jsx(_components.p,{children:`Salla lists these when you approve. Elastly asks for exactly what it needs to price and nothing more.`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Scope`}),_jsx(_components.th,{children:`What it’s for`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`settings.read`})}),_jsx(_components.td,{children:`Your store’s currency and whether it’s a demo store.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`customers.read`})}),_jsx(_components.td,{children:`Who is buying, so pricing can vary by customer.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`orders.read`})}),_jsx(_components.td,{children:`Realized sales. The outcome the learning loop trains on.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`products.read_write`})}),_jsx(_components.td,{children:`Reads your catalog, and writes an approved price back when you enable write-back.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`offline_access`})}),_jsx(_components.td,{children:`Lets the sync keep running on a schedule without re-approving.`})]})]})]}),`\n`,_jsx(Note,{children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Read-write is requested, but write-back stays off.`}),` Elastly asks for product write access up\nfront so you never have to reconnect to turn write-back on later. It writes nothing to your store\nuntil you enable it and approve a price. See `,_jsx(_components.a,{href:`#price-write-back`,children:`Price write-back`}),`.`]})}),`\n`,_jsx(Heading,{level:`2`,id:`what-elastly-reads`,children:`What Elastly reads`}),`\n`,_jsx(_components.p,{children:`Elastly maps Salla’s fields onto its canonical schema. The defaults fit a standard store, and you can\nchange any of them on the Field mapping page.`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Products.`}),` SKU, name, category, brand, price, GTIN, and stock. The product is the priced unit.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Cost.`}),` The product’s cost field, which is your margin basis.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Customers.`}),` Full name, city, and country. City seeds the customer’s segment and region.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Orders.`}),` Realized, line-level sales. This is the signal the learning loop uses to tune margins.`]}),`\n`]}),`\n`,_jsx(_components.p,{children:`Salla has no quotes, so like the other storefronts, Elastly learns from realized orders.`}),`\n`,_jsx(Note,{children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Cost is the gate.`}),` A product with no cost has no margin basis, so Elastly leaves it unpriced until\na later sync brings a cost in. Set cost on your products in Salla before you expect recommendations.`]})}),`\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 last\nwatermark.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Environment-aware.`}),` Demo stores are detected and labelled Sandbox. Live stores show Production.`]}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`verify-permissions`,children:`Verify permissions`}),`\n`,_jsxs(_components.p,{children:[`If an approval is missing a scope, Salla quietly returns nothing for that record type, and the sync\nlooks like it simply found no customers or no orders. Open `,_jsx(_components.strong,{children:`Diagnostics`}),` on the connector page and\npress `,_jsx(_components.strong,{children:`Check permissions`}),`. Elastly checks the scopes granted on your approval and flags anything\nmissing. It runs the same check after every sync. If a scope shows Missing, reconnect from\n`,_jsx(_components.a,{href:`https://app.elastly.io/integrations`,children:`Integrations`}),` and approve again.`]}),`\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 product in Salla. Elastly sets the price and touches nothing\nelse 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. It stays\npaused until you do.`]}),`\n`,_jsxs(_components.li,{children:[`It uses the `,_jsx(_components.strong,{children:`products.read_write`}),` access you already approved when you connected, so there’s\nnothing extra to grant.`]}),`\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 Salla","sidebarTitle":"Salla","description":"Connect your Salla store to Elastly in one click. Approve access once and it syncs your catalog, cost, stock, customers, and realized orders.","icon":"/logos/salla.svg","href":"/connect-salla"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"How it connects","slug":"how-it-connects","depth":2,"children":[]},{"title":"The access it asks for","slug":"the-access-it-asks-for","depth":2,"children":[]},{"title":"What Elastly reads","slug":"what-elastly-reads","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 Salla - Elastly","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-07-18T16:49:09.235Z","originalFileLocation":"connect-salla.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=\"Connect your Salla store to Elastly in one click. Approve access once and it syncs your catalog, cost, stock, 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 Salla - Elastly\">\u003cmeta data-mint-head property=\"og:description\" content=\"Connect your Salla store to Elastly in one click. Approve access once and it syncs your catalog, cost, stock, 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-salla\">\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+Salla\u0026amp;description=Connect+your+Salla+store+to+Elastly+in+one+click.+Approve+access+once+and+it+syncs+your+catalog%2C+cost%2C+stock%2C+customers%2C+and+realized+orders.\u0026amp;theme=985f5a4e184105ad24230309\u0026amp;signature=78c97f5670a0fd9a2bb33b97dab5236e430f1e44637ccb74edccb9f37c88f918\">\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 Salla - Elastly\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Connect your Salla store to Elastly in one click. Approve access once and it syncs your catalog, cost, stock, 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+Salla\u0026amp;description=Connect+your+Salla+store+to+Elastly+in+one+click.+Approve+access+once+and+it+syncs+your+catalog%2C+cost%2C+stock%2C+customers%2C+and+realized+orders.\u0026amp;theme=985f5a4e184105ad24230309\u0026amp;signature=78c97f5670a0fd9a2bb33b97dab5236e430f1e44637ccb74edccb9f37c88f918\">\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-salla\">\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-salla.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","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 Salla - 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"]}