Shopify is a leading e-commerce platform that enables businesses to create and manage online stores, process orders, and handle payments. In Zenskar, you can use Shopify as a data source to import order, product, and customer data for metering, billing, and analytical reporting.The connector supports both REST and GraphQL APIs, allowing you to access a wide range of Shopify resources efficiently and keep your billing data continuously in sync with your store’s operations.
Add the following scopes to your Shopify custom app to allow Zenskar to sync all available data.
For more information about access scopes, refer to the Shopify documentation.
Scope
Description
read_analytics
Access analytics data.
read_assigned_fulfillment_orders
Access assigned fulfillment orders.
read_content
Access online store content such as articles and blogs.
The Shopify source supports both Full Refresh and Incremental sync modes. You can configure the connector to either copy only new or updated data, or replicate all rows in the selected tables and columns each time a sync runs.This source can sync data using the following Shopify APIs:
The connector captures record deletions in the Articles, Blogs, CustomCollections, Orders, Pages, PriceRules and Products streams.When a record is deleted, the connector outputs a record with the ID of that record and the deleted_at, deleted_message, and deleted_description fields filled out. No other fields are filled out for the deleted records.
🚧 If you encounter access errors while using OAuth 2.0 authentication, ensure you’ve requested access to the client’s store as described in the Shopify documentation. Once access is granted, you can proceed with OAuth 2.0 authentication.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Zenskar Documentation","colors":{"primary":"#0A1633","light":"#3B82F6","dark":"#1D3461"},"logo":{"light":"https://mintcdn.com/zenskar-3d451781/8zM5vHUy4GbBMWvZ/logo/for-light-themes.svg?fit=max\u0026auto=format\u0026n=8zM5vHUy4GbBMWvZ\u0026q=85\u0026s=7b3708e348af5e2ca4bd6f302186ccc2","dark":"https://mintcdn.com/zenskar-3d451781/8zM5vHUy4GbBMWvZ/logo/for-dark-themes.svg?fit=max\u0026auto=format\u0026n=8zM5vHUy4GbBMWvZ\u0026q=85\u0026s=591296922399ed1050dc1ee22842edbc"},"favicon":"https://mintcdn.com/zenskar-3d451781/8zM5vHUy4GbBMWvZ/favicon.svg?fit=max\u0026auto=format\u0026n=8zM5vHUy4GbBMWvZ\u0026q=85\u0026s=9a4afe8a43b76270c67c367963907132","navbar":{"links":[{"href":"mailto:help@zenskar.com","label":"Support"}],"primary":{"type":"button","label":"Dashboard","href":"https://app.zenskar.com"}},"footer":{"socials":{"x":"https://x.com/zenskar","github":"https://github.com/zenskar","linkedin":"https://linkedin.com/company/zenskar"}},"contextual":{"options":["copy","view","chatgpt","claude","perplexity","mcp","cursor","vscode"],"display":"header"},"styling":{"latex":true},"navigation":{"global":{"anchors":[{"anchor":"Blog","icon":"newspaper","href":"https://www.zenskar.com/blog"}]},"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"zenskar-3d451781","hasAudioNarration":false,"actualSubdomain":"zenskar-3d451781","customDomains":["zenskar.com"],"gitSource":{"type":"github","owner":"zenskar","repo":"documentation-public","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6ae30736bfc6b3f8ac65f926","collectionId":"4079bcdf-0019-4b48-88c5-394119dfc5b9","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ae30736bfc6b3f8ac65f926"},"entitlements":{"AI_CHAT":{"status":"DISABLED"}},"buildId":"6ae44f03a3eed560d7e476ac","clientVersion":"0.0.4021","searchFilterCounts":[{"language":"default","tag":"Documentation","count":322},{"language":"default","tag":"Product modules","count":191},{"language":"default","tag":"API Reference","count":164},{"language":"default","tag":"Third-party integrations","count":68},{"language":"default","tag":"How-to guides","count":43},{"language":"default","tag":"Contracts","count":40},{"language":"default","tag":"Data sources","count":39},{"language":"default","tag":"Concepts","count":36},{"language":"default","tag":"Accounting","count":35},{"language":"default","tag":"Settings","count":34}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":true,"enableContextualStarterQuestions":true,"enableAskAiSearchBar":true,"deflection":{"enabled":true,"email":"support@zenskar.com","showHelpButton":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":"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":"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":"byok-sep-25","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":"billing-updated-9-15","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":"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}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"20240301/third-party-integrations/data-sources/shopify","slug":"/20240301/third-party-integrations/data-sources/shopify","pageMetadata":{"title":"Shopify","deprecated":false,"hidden":false,"metadata":{"description":"This document provides a setup guide for integrating Shopify with Zenskar, detailing prerequisites, steps to create a custom Shopify application, and configuring data sources, along with supported sync modes, streams, and troubleshooting tips.","robots":"index"},"next":null,"description":null,"href":"/20240301/third-party-integrations/data-sources/shopify","hiddenSetByFrontmatter":true},"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`,hr:`hr`,li:`li`,ol:`ol`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,..._provideComponents(),...props.components},{CodeBlock,Heading,Table,Warning}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Table)_missingMdxReference(`Table`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsx(Heading,{level:`2`,id:`overview`,children:`Overview`}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.a,{href:`https://www.shopify.com/`,children:`Shopify`}),` is a leading e-commerce platform that enables businesses to create and manage online stores, process orders, and handle payments. In Zenskar, you can use Shopify as a data source to import order, product, and customer data for metering, billing, and analytical reporting.`]}),`\n`,_jsxs(_components.p,{children:[`The connector supports both `,_jsx(_components.strong,{children:`REST`}),` and `,_jsx(_components.strong,{children:`GraphQL`}),` APIs, allowing you to access a wide range of Shopify resources efficiently and keep your billing data continuously in sync with your store’s operations.`]}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`prerequisites`,children:`Prerequisites`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.a,{href:`https://www.shopify.com/`,children:`An active Shopify store`}),`.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.a,{href:`https://help.shopify.com/en/partners/dashboard/managing-stores/request-access#request-access`,children:`Request access to your client’s store`}),`, if you are syncing data from a store that you do not own (not required for account owners).`]}),`\n`,_jsxs(_components.li,{children:[`A custom Shopify application with `,_jsxs(_components.a,{href:`/20240301/third-party-integrations/data-sources/shopify#custom-app-scopes`,children:[_jsx(_components.code,{children:`read_`}),` scopes enabled`]}),`.`]}),`\n`]}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`set-up-a-shopify-data-source-connector-via-zenskar-dashboard`,children:`Set up a Shopify data-source connector via Zenskar dashboard`}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsx(_components.li,{children:`Log into your Zenskar dashboard.`}),`\n`,_jsxs(_components.li,{children:[`In the left side bar, click `,_jsx(_components.strong,{children:`Usage > Data Sources`}),`.`]}),`\n`,_jsxs(_components.li,{children:[`In the top-right corner, click `,_jsx(_components.strong,{children:`+ ADD DATA SOURCE`}),`.`]}),`\n`,_jsxs(_components.li,{children:[`On the `,_jsx(_components.strong,{children:`Add New Data Source`}),` page, `,_jsx(_components.a,{href:`/20240301/third-party-integrations/data-sources/shopify#connector-configuration`,children:`configure the connector`}),`.`]}),`\n`,_jsxs(_components.li,{children:[`Click on the `,_jsx(_components.strong,{children:`SAVE SOURCE`}),` button.`]}),`\n`]}),`\n`,_jsx(Heading,{level:`3`,id:`connector-configuration`,children:`Connector configuration`}),`\n`,_jsx(Heading,{level:`4`,id:`general-configuration`,children:`General configuration`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{style:{textAlign:`left`},children:`Field`}),_jsx(_components.th,{style:{textAlign:`left`},children:`Description`}),_jsx(_components.th,{style:{textAlign:`left`},children:`Required`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:_jsx(_components.strong,{children:`Source Name`})}),_jsx(_components.td,{style:{textAlign:`left`},children:`Enter a unique name for this data source.`}),_jsx(_components.td,{style:{textAlign:`left`},children:`Yes`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:_jsx(_components.strong,{children:`Source Type`})}),_jsxs(_components.td,{style:{textAlign:`left`},children:[`Select `,_jsx(_components.strong,{children:`Shopify`}),` from the dropdown menu.`]}),_jsx(_components.td,{style:{textAlign:`left`},children:`Yes`})]})]})]}),`\n`,_jsx(Heading,{level:`4`,id:`connector-configuration-2`,children:`Connector configuration`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Field`}),_jsx(_components.th,{children:`Description`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Shopify Store`})}),_jsxs(_components.td,{children:[`Enter your `,_jsx(_components.strong,{children:`Shopify store name`}),`.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Shopify Authorization Method`})}),_jsxs(_components.td,{children:[`Choose how you want to authorize API requests: `,_jsx(_components.strong,{children:`OAuth 2.0`}),` or `,_jsx(_components.strong,{children:`API Password`}),`. Depending on your choice, fill in the required fields listed below.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Replication Start Date`})}),_jsxs(_components.td,{children:[`Defaults to `,_jsx(_components.strong,{children:`01 January 2020`}),`. Set a start date for data replication. Records created before this date will not be synced.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsxs(_components.strong,{children:[`Add `,_jsx(_components.code,{children:`user_id`}),` to Transactions (slower)`]})}),_jsxs(_components.td,{children:[`Defines which API type (`,_jsx(_components.strong,{children:`REST`}),` or `,_jsx(_components.strong,{children:`BULK`}),`) is used to fetch `,_jsx(_components.code,{children:`Transactions`}),` data. For `,_jsx(_components.strong,{children:`Shopify Plus`}),` users, keep the default value to optimize sync performance.`]})]})]})]}),`\n`,_jsx(Warning,{children:_jsxs(_components.p,{children:[`You must complete the corresponding conditional table below based on the `,_jsx(_components.strong,{children:`Shopify Authorization Method`}),` you choose.`]})}),`\n`,_jsx(Heading,{level:`4`,id:`oauth-2-0-authorization-configuration`,children:`OAuth 2.0 authorization configuration`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`To retrieve your `,_jsx(_components.strong,{children:`Client ID`}),` and `,_jsx(_components.strong,{children:`Client Secret`}),`: `,_jsx(_components.a,{href:`https://shopify.dev/docs/apps/build/authentication-authorization/client-secrets`,children:`About client secrets`}),`.`]}),`\n`,_jsxs(_components.li,{children:[`To generate your `,_jsx(_components.strong,{children:`Admin API Access Token`}),`: `,_jsx(_components.a,{href:`https://shopify.dev/docs/apps/build/authentication-authorization/access-tokens/generate-app-access-tokens-admin`,children:`Generate access tokens for custom apps in the Shopify admin`}),`.`]}),`\n`]}),`\n`,_jsx(Warning,{children:_jsxs(_components.p,{children:[`These fields are required only if `,_jsx(_components.strong,{children:`Shopify Authorization Method`}),` is set to `,_jsx(_components.strong,{children:`OAuth 2.0`}),`.`]})}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Field`}),_jsx(_components.th,{children:`Description`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Client ID`})}),_jsx(_components.td,{children:`The client ID of your Shopify custom app.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Client Secret`})}),_jsx(_components.td,{children:`The client secret of your Shopify custom app.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Access Token`})}),_jsx(_components.td,{children:`The Admin API access token for your store.`})]})]})]}),`\n`,_jsx(Heading,{level:`4`,id:`api-password-authorization-configuration`,children:`API Password authorization configuration`}),`\n`,_jsx(Warning,{children:_jsxs(_components.p,{children:[`These fields are required only if `,_jsx(_components.strong,{children:`Shopify Authorization Method`}),` is set to `,_jsx(_components.strong,{children:`API Password`}),`.`]})}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Field`}),_jsx(_components.th,{children:`Description`})]})}),_jsx(_components.tbody,{children:_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`API Password`})}),_jsx(_components.td,{children:`The API password for your Shopify custom app.`})]})})]}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`addendum`,children:`Addendum`}),`\n`,_jsx(Heading,{level:`3`,id:`custom-app-scopes`,children:`Custom app scopes`}),`\n`,_jsxs(_components.p,{children:[`Add the following scopes to your Shopify custom app to allow Zenskar to sync all available data.\nFor more information about access scopes, refer to the `,_jsx(_components.a,{href:`https://shopify.dev/docs/api/usage/access-scopes`,children:`Shopify documentation`}),`.`]}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Scope`}),_jsx(_components.th,{children:`Description`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`read_analytics`})}),_jsx(_components.td,{children:`Access analytics data.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`read_assigned_fulfillment_orders`})}),_jsx(_components.td,{children:`Access assigned fulfillment orders.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`read_content`})}),_jsx(_components.td,{children:`Access online store content such as articles and blogs.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`read_customers`})}),_jsx(_components.td,{children:`Access customer data.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`read_discounts`})}),_jsx(_components.td,{children:`Access discount details.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`read_draft_orders`})}),_jsx(_components.td,{children:`Access draft orders.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`read_fulfillments`})}),_jsx(_components.td,{children:`Access fulfillment data.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`read_gdpr_data_request`})}),_jsx(_components.td,{children:`Access GDPR-related data requests.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`read_gift_cards`})}),_jsx(_components.td,{children:`Access gift card information.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`read_inventory`})}),_jsx(_components.td,{children:`Access product inventory data.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`read_legal_policies`})}),_jsx(_components.td,{children:`Access store legal policies.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`read_locations`})}),_jsx(_components.td,{children:`Access location data.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`read_locales`})}),_jsx(_components.td,{children:`Access localization information.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`read_marketing_events`})}),_jsx(_components.td,{children:`Access marketing event data.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`read_merchant_managed_fulfillment_orders`})}),_jsx(_components.td,{children:`Access merchant-managed fulfillment orders.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`read_online_store_pages`})}),_jsx(_components.td,{children:`Access online store pages.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`read_order_edits`})}),_jsx(_components.td,{children:`Access order edits.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`read_orders`})}),_jsx(_components.td,{children:`Access order information.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`read_price_rules`})}),_jsx(_components.td,{children:`Access price rules.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`read_product_listings`})}),_jsx(_components.td,{children:`Access product listings.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`read_products`})}),_jsx(_components.td,{children:`Access product data.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`read_publications`})}),_jsx(_components.td,{children:`Access publications.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`read_reports`})}),_jsx(_components.td,{children:`Access reports.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`read_resource_feedbacks`})}),_jsx(_components.td,{children:`Access feedback on resources.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`read_script_tags`})}),_jsx(_components.td,{children:`Access script tags.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`read_shipping`})}),_jsx(_components.td,{children:`Access shipping information.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`read_shopify_payments_accounts`})}),_jsx(_components.td,{children:`Access Shopify Payments account information.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`read_shopify_payments_bank_accounts`})}),_jsx(_components.td,{children:`Access bank account details for Shopify Payments.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`read_shopify_payments_disputes`})}),_jsx(_components.td,{children:`Access dispute data for Shopify Payments.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`read_shopify_payments_payouts`})}),_jsx(_components.td,{children:`Access payout data for Shopify Payments.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`read_themes`})}),_jsx(_components.td,{children:`Access themes and related assets.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`read_third_party_fulfillment_orders`})}),_jsx(_components.td,{children:`Access third-party fulfillment orders.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`read_translations`})}),_jsx(_components.td,{children:`Access store translations.`})]})]})]}),`\n`,_jsx(Heading,{level:`3`,id:`supported-sync-modes`,children:`Supported sync modes`}),`\n`,_jsxs(_components.p,{children:[`The Shopify source supports both `,_jsx(_components.strong,{children:`Full Refresh`}),` and `,_jsx(_components.strong,{children:`Incremental`}),` sync modes. You can configure the connector to either copy only new or updated data, or replicate all rows in the selected tables and columns each time a sync runs.`]}),`\n`,_jsx(_components.p,{children:`This source can sync data using the following Shopify APIs:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:_jsx(_components.a,{href:`https://shopify.dev/api/admin-rest`,children:`Shopify REST API`})}),`\n`,_jsx(_components.li,{children:_jsx(_components.a,{href:`https://shopify.dev/api/admin-graphql`,children:`Shopify GraphQL API`})}),`\n`,_jsx(_components.li,{children:_jsx(_components.a,{href:`https://shopify.dev/docs/api/usage/bulk-operations/queries`,children:`Shopify GraphQL Bulk API`})}),`\n`]}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`3`,id:`rate-limiting`,children:`Rate limiting`}),`\n`,_jsxs(_components.p,{children:[`🚧 Shopify has `,_jsx(_components.a,{href:`https://shopify.dev/concepts/about-apis/rate-limits`,children:`rate limit restrictions`}),` . In some edge cases, you may encounter the following warning message:`]}),`\n`,_jsx(CodeBlock,{numberOfLines:`2`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`2`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`\"Caught retryable error '\u003csome_error> or null' after \u003csome_number> tries. Waiting \u003csome_number> seconds then retrying...\"`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),`\n`,_jsxs(_components.p,{children:[`This is expected when the connector hits a `,_jsx(_components.code,{children:`429 - Rate Limit Exceeded`}),` HTTP error. The sync operation will continue successfully after a short backoff period. These `,_jsx(_components.a,{href:`https://shopify.dev/docs/api/usage/bulk-operations/queries#operation-restrictions`,children:`limitations are applied to all Shopify GraphQL bulk API requests`}),` .`]}),`\n`,_jsx(Heading,{level:`3`,id:`capturing-deleted-records`,children:`Capturing deleted records`}),`\n`,_jsxs(_components.p,{children:[`The connector captures `,_jsx(_components.a,{href:`https://shopify.dev/docs/api/admin-rest/2024-04/resources/event`,children:`record deletions`}),` in the `,_jsx(_components.code,{children:`Articles`}),`, `,_jsx(_components.code,{children:`Blogs`}),`, `,_jsx(_components.code,{children:`CustomCollections`}),`, `,_jsx(_components.code,{children:`Orders`}),`, `,_jsx(_components.code,{children:`Pages`}),`, `,_jsx(_components.code,{children:`PriceRules`}),` and `,_jsx(_components.code,{children:`Products`}),` streams.`]}),`\n`,_jsxs(_components.p,{children:[`When a record is deleted, the connector outputs a record with the `,_jsx(_components.code,{children:`ID`}),` of that record and the `,_jsx(_components.code,{children:`deleted_at`}),`, `,_jsx(_components.code,{children:`deleted_message`}),`, and `,_jsx(_components.code,{children:`deleted_description`}),` fields filled out. No other fields are filled out for the deleted records.`]}),`\n`,_jsx(Heading,{level:`3`,id:`access-errors`,children:`Access errors`}),`\n`,_jsxs(_components.p,{children:[`🚧 If you encounter access errors while using OAuth 2.0 authentication, ensure you’ve `,_jsx(_components.a,{href:`https://help.shopify.com/en/manual/your-account/staff-accounts/staff-permissions`,children:`requested access to the client’s store`}),` as described in the Shopify documentation. Once access is granted, you can proceed with OAuth 2.0 authentication.`]})]})}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":"Shopify","deprecated":false,"hidden":false,"metadata":{"description":"This document provides a setup guide for integrating Shopify with Zenskar, detailing prerequisites, steps to create a custom Shopify application, and configuring data sources, along with supported sync modes, streams, and troubleshooting tips.","robots":"index"},"next":null,"description":null,"href":"/20240301/third-party-integrations/data-sources/shopify","hiddenSetByFrontmatter":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Overview","slug":"overview","depth":2,"children":[]},{"title":"Prerequisites","slug":"prerequisites","depth":2,"children":[]},{"title":"Set up a Shopify data-source connector via Zenskar dashboard","slug":"set-up-a-shopify-data-source-connector-via-zenskar-dashboard","depth":2,"children":[{"title":"Connector configuration","slug":"connector-configuration","depth":3,"children":[]},{"title":"General configuration","slug":"general-configuration","depth":4,"children":[]},{"title":"Connector configuration","slug":"connector-configuration-2","depth":4,"children":[]},{"title":"OAuth 2.0 authorization configuration","slug":"oauth-2-0-authorization-configuration","depth":4,"children":[]},{"title":"API Password authorization configuration","slug":"api-password-authorization-configuration","depth":4,"children":[]}]},{"title":"Addendum","slug":"addendum","depth":2,"children":[{"title":"Custom app scopes","slug":"custom-app-scopes","depth":3,"children":[]},{"title":"Supported sync modes","slug":"supported-sync-modes","depth":3,"children":[]},{"title":"Rate limiting","slug":"rate-limiting","depth":3,"children":[]},{"title":"Capturing deleted records","slug":"capturing-deleted-records","depth":3,"children":[]},{"title":"Access errors","slug":"access-errors","depth":3,"children":[]}]}],"codeExamples":{}},"jsLinks":[],"subdomain":"zenskar-3d451781","siteName":"Zenskar Documentation","title":"Shopify - Zenskar Documentation","contextualStarterQuestions":[{"_id":"6a96745e5579d15a91e21d38","deploymentId":"69e0a11c3e5ca76e4bd3f576","questionText":"What data can I import from Shopify?","status":"active","generatedBy":"contextual","path":"20240301/third-party-integrations/data-sources/shopify","createdAt":"2026-09-01T06:44:46.745Z","updatedAt":"2026-09-01T06:44:46.745Z","__v":0},{"_id":"6a96745e5579d15a91e21d37","deploymentId":"69e0a11c3e5ca76e4bd3f576","questionText":"How do I set up Shopify connector?","status":"active","generatedBy":"contextual","path":"20240301/third-party-integrations/data-sources/shopify","createdAt":"2026-09-01T06:44:46.745Z","updatedAt":"2026-09-01T06:44:46.745Z","__v":0},{"_id":"6a96745e5579d15a91e21d39","deploymentId":"69e0a11c3e5ca76e4bd3f576","questionText":"What scopes do I need to enable?","status":"active","generatedBy":"contextual","path":"20240301/third-party-integrations/data-sources/shopify","createdAt":"2026-09-01T06:44:46.745Z","updatedAt":"2026-09-01T06:44:46.745Z","__v":0}],"navMaps":{"firstHrefInVersion":{"cedar.ALPHA.20260301":{"href":"/20260301/third-party-integrations/data-sources/shopify","matchLevel":1},"baobab.20240301":{"href":"/20240301/third-party-integrations/data-sources/shopify","matchLevel":0}},"firstHrefInLanguage":{}},"lastModified":"2026-09-01T06:43:57.184Z","originalFileLocation":"20240301/third-party-integrations/data-sources/shopify.md"},"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=\"application-name\" content=\"Zenskar Documentation\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/docs/mintlify-assets/_mintlify/favicons/zenskar-3d451781/MYgNV77YbtdSqIUY/_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/zenskar-3d451781/MYgNV77YbtdSqIUY/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/docs/mintlify-assets/_mintlify/favicons/zenskar-3d451781/MYgNV77YbtdSqIUY/_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/zenskar-3d451781/MYgNV77YbtdSqIUY/_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/zenskar-3d451781/MYgNV77YbtdSqIUY/_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/zenskar-3d451781/MYgNV77YbtdSqIUY/_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/zenskar-3d451781/MYgNV77YbtdSqIUY/_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/zenskar-3d451781/MYgNV77YbtdSqIUY/_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/zenskar-3d451781/MYgNV77YbtdSqIUY/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Shopify - Zenskar Documentation\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Zenskar Documentation\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://zenskar.com/docs/20240301/third-party-integrations/data-sources/shopify\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://zenskar-3d451781.mintlify.app/_mintlify/api/og/v2?division=Data+sources\u0026amp;title=Shopify\u0026amp;theme=a962312433b97c96be242726\u0026amp;signature=ab7cc74279c25463782943cd9fa77becb3066ca79c7eabe8b0b6be3e6e4b2407\">\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=\"Shopify - Zenskar Documentation\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://zenskar-3d451781.mintlify.app/_mintlify/api/og/v2?division=Data+sources\u0026amp;title=Shopify\u0026amp;theme=a962312433b97c96be242726\u0026amp;signature=ab7cc74279c25463782943cd9fa77becb3066ca79c7eabe8b0b6be3e6e4b2407\">\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/zenskar-3d451781/MYgNV77YbtdSqIUY/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Zenskar Documentation\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#0A1633\">\u003clink data-mint-head rel=\"canonical\" href=\"https://zenskar.com/docs/20240301/third-party-integrations/data-sources/shopify\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/docs/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/docs/20240301/third-party-integrations/data-sources/shopify.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://zenskar.com/#organization\",\"name\":\"Zenskar Documentation\",\"url\":\"https://zenskar.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/zenskar-3d451781/8zM5vHUy4GbBMWvZ/logo/for-light-themes.svg?fit=max\u0026auto=format\u0026n=8zM5vHUy4GbBMWvZ\u0026q=85\u0026s=7b3708e348af5e2ca4bd6f302186ccc2\"}},{\"@type\":\"WebSite\",\"@id\":\"https://zenskar.com/docs#website\",\"name\":\"Zenskar Documentation\",\"url\":\"https://zenskar.com/docs\",\"publisher\":{\"@id\":\"https://zenskar.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://zenskar.com/docs/20240301/third-party-integrations/data-sources/shopify#webpage\",\"url\":\"https://zenskar.com/docs/20240301/third-party-integrations/data-sources/shopify\",\"name\":\"Shopify\",\"dateModified\":\"2026-09-01T06:43:57.184Z\",\"isPartOf\":{\"@id\":\"https://zenskar.com/docs#website\"},\"breadcrumb\":{\"@id\":\"https://zenskar.com/docs/20240301/third-party-integrations/data-sources/shopify#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://zenskar.com/docs/20240301/third-party-integrations/data-sources/shopify#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Third-party integrations\",\"item\":\"https://zenskar.com/docs/20240301/third-party-integrations/index\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Data sources\",\"item\":\"https://zenskar.com/docs/20240301/third-party-integrations/data-sources/auth0\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Shopify\",\"item\":\"https://zenskar.com/docs/20240301/third-party-integrations/data-sources/shopify\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://zenskar.com/docs/20240301/third-party-integrations/data-sources/shopify#article\",\"headline\":\"Shopify\",\"name\":\"Shopify\",\"url\":\"https://zenskar.com/docs/20240301/third-party-integrations/data-sources/shopify\",\"mainEntityOfPage\":{\"@id\":\"https://zenskar.com/docs/20240301/third-party-integrations/data-sources/shopify#webpage\"},\"dateModified\":\"2026-09-01T06:43:57.184Z\",\"publisher\":{\"@id\":\"https://zenskar.com/#organization\"},\"isPartOf\":{\"@id\":\"https://zenskar.com/docs#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Zenskar Documentation\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Zenskar Documentation","nav":{"global":{"anchors":[{"anchor":"Blog","icon":"newspaper","href":"https://www.zenskar.com/blog"}]},"versions":[{"version":"cedar.ALPHA.20260301","default":false,"pages":[{"title":"cedar.ALPHA.20260301","href":"/20260301/third-party-integrations/data-sources/shopify"}]},{"version":"baobab.20240301","default":true,"tabs":[{"tab":"Documentation","groups":[{"group":"Getting started","pages":[{"title":"Welcome to Zenskar","href":"/20240301/getting-started/introduction"},{"group":"Your first invoice","expanded":false,"pages":[{"title":"Quickstart guide","deprecated":false,"hidden":false,"href":"/20240301/getting-started/your-first-invoice/index"},{"title":"Step 1: Add a customer","deprecated":false,"hidden":false,"href":"/20240301/getting-started/your-first-invoice/add-a-customer"},{"title":"Step 2: Ingest usage events via API","deprecated":false,"hidden":false,"href":"/20240301/getting-started/your-first-invoice/ingest-usage-events-api"},{"title":"Step 3: Define billable metrics","deprecated":false,"hidden":false,"href":"/20240301/getting-started/your-first-invoice/define-billable-metrics"},{"title":"Step 4: Create contract and add products","deprecated":false,"hidden":false,"href":"/20240301/getting-started/your-first-invoice/create-contract-products"},{"title":"Step 5: Generate invoice","deprecated":false,"hidden":false,"href":"/20240301/getting-started/your-first-invoice/generate-invoice"}]},{"group":"Integration and migration guides","pages":[{"title":"What does Zenskar pilot program entail?","deprecated":false,"hidden":false,"href":"/20240301/integration-and-migration-guides/what-does-a-zenskar-pilot-program-entail"},{"title":"What does Zenskar implementation entail?","deprecated":false,"hidden":false,"href":"/20240301/integration-and-migration-guides/what-does-zenskar-implementation-entail"},{"title":"Data migration and integration options","deprecated":false,"hidden":false,"href":"/20240301/integration-and-migration-guides/data-migration-and-integration-options"},{"title":"Integrating your ERP software with Zenskar","deprecated":false,"hidden":false,"href":"/20240301/integration-and-migration-guides/integrating-your-erp-with-zenskar"}]}]},{"group":"Product modules","pages":[{"group":"Accounting","pages":[{"group":"Concepts","expanded":false,"pages":[{"title":"Chart of accounts","deprecated":false,"hidden":false,"href":"/20240301/product-modules/accounting/concepts/chart-of-accounts"},{"title":"ASC 606 and IFRS 15: Five steps of revenue recognition","deprecated":false,"hidden":false,"href":"/20240301/product-modules/accounting/concepts/five-steps-of-revenue-recognition"},{"title":"Revenue lifecycle","deprecated":false,"hidden":false,"href":"/20240301/product-modules/accounting/concepts/revenue-lifecycle"}]},{"group":"How-to guides","expanded":false,"pages":[{"title":"Create a revenue recognition rule","deprecated":false,"hidden":false,"href":"/20240301/product-modules/accounting/how-to-guides/create-a-revenue-recognition-rule"},{"title":"Revenue distribution and redistribution methods","deprecated":false,"hidden":false,"href":"/20240301/product-modules/accounting/how-to-guides/revenue-distribution-and-redistribution-methods"}]},{"group":"Reference","expanded":false,"pages":[{"title":"Revenue adjustment methods","deprecated":false,"hidden":false,"href":"/20240301/product-modules/accounting/reference/revenue-adjustment-methods"},{"title":"Revenue distribution methods","deprecated":false,"hidden":false,"href":"/20240301/product-modules/accounting/reference/revenue-distribution-methods"},{"title":"Performance obligation policies","deprecated":false,"hidden":false,"href":"/20240301/product-modules/accounting/reference/performance-obligation-policies"}]}]},{"group":"Contracts","pages":[{"group":"Concepts","expanded":false,"pages":[{"title":"Contract","deprecated":false,"hidden":false,"href":"/20240301/product-modules/contracts/concepts/contract"},{"title":"Contract renewal","sidebarTitle":"Contract renewal","href":"/20240301/product-modules/contracts/concepts/contract-renewal"},{"title":"Plan","deprecated":false,"hidden":false,"href":"/20240301/product-modules/contracts/concepts/plan"},{"title":"Contract features","sidebarTitle":"Features","href":"/20240301/product-modules/contracts/concepts/feature"}]},{"group":"Walkthroughs","expanded":false,"pages":[{"title":"Contract","sidebarTitle":"Contract","href":"/20240301/product-modules/contracts/walkthroughs/contract"}]},{"group":"How-to guides","expanded":false,"pages":[{"title":"How to create a plan-based contract via dashboard","sidebarTitle":"Create a contract from a plan","href":"/20240301/product-modules/contracts/how-to-guides/create-a-contract-from-a-plan-using-the-zenskar-dashboard"},{"title":"How to create a contract via dashboard","sidebarTitle":"Create a contract via dashboard","href":"/20240301/product-modules/contracts/how-to-guides/create-a-contract-using-the-zenskar-dashboard"},{"title":"How to create a contract via AI","sidebarTitle":"Create a contract via AI","deprecated":false,"hidden":false,"href":"/20240301/product-modules/contracts/how-to-guides/create-a-contract-via-ai"},{"title":"How to manage contracts","sidebarTitle":"Manage contracts","href":"/20240301/product-modules/contracts/how-to-guides/manage-contracts"}]},{"group":"Reference","expanded":false,"pages":[{"title":"Contract reference","sidebarTitle":"Contract","href":"/20240301/product-modules/contracts/reference/contract"}]}]},{"group":"Customers","pages":[{"group":"Concepts","expanded":false,"pages":[{"title":"Customers","sidebarTitle":"Customers","href":"/20240301/product-modules/customers/concepts/customers"},{"title":"Customer-facing portal","sidebarTitle":"Customer-facing portal","href":"/20240301/product-modules/customers/concepts/customer-facing-portal"}]},{"group":"Walkthroughs","expanded":false,"pages":[{"title":"Customers","sidebarTitle":"Customers","href":"/20240301/product-modules/customers/walkthroughs/customers"}]},{"group":"How-to guides","expanded":false,"pages":[{"title":"Add customers to Zenskar","sidebarTitle":"Add customers","href":"/20240301/product-modules/customers/how-to-guides/add-customers"},{"title":"Manage customers","sidebarTitle":"Manage customers","href":"/20240301/product-modules/customers/how-to-guides/manage-customers"},{"title":"Use the customer-facing portal","sidebarTitle":"Customer-facing portal","href":"/20240301/product-modules/customers/how-to-guides/customer-facing-portal"}]},{"group":"Reference","expanded":false,"pages":[{"title":"Customers reference","sidebarTitle":"Customers","href":"/20240301/product-modules/customers/reference/customers"},{"title":"Customer-facing portal reference","sidebarTitle":"Customer-facing portal","href":"/20240301/product-modules/customers/reference/customer-facing-portal"}]}]},{"group":"Insights","pages":[{"title":"Create custom dashboards","href":"/20240301/product-modules/insights/create-custom-dashboards"},{"title":"Monitoring","href":"/20240301/product-modules/insights/monitoring"},{"group":"Billing and collections dashboard","expanded":false,"pages":[{"title":"Days sales outstanding","deprecated":false,"hidden":true,"href":"/20240301/product-modules/insights/billing-and-collections-dashboard/days-sales-outstanding"},{"title":"Invoices","deprecated":false,"hidden":false,"href":"/20240301/product-modules/insights/billing-and-collections-dashboard/invoices-analytics"},{"title":"Payments","deprecated":false,"hidden":false,"href":"/20240301/product-modules/insights/billing-and-collections-dashboard/payment-analytics"}]},{"group":"Revenue analytics","expanded":false,"pages":[{"title":"Revenue analytics","deprecated":false,"hidden":false,"href":"/20240301/product-modules/insights/revenue-analytics/index"},{"title":"Gross revenue retention","deprecated":false,"hidden":false,"href":"/20240301/product-modules/insights/revenue-analytics/gross-revenue-retention"},{"title":"Monthly recurring revenue","deprecated":false,"hidden":false,"href":"/20240301/product-modules/insights/revenue-analytics/monthly-recurring-revenue"},{"title":"Monthly recurring revenue by product","deprecated":false,"hidden":false,"href":"/20240301/product-modules/insights/revenue-analytics/monthly-recurring-revenue-by-product"},{"title":"MRR customer waterfall","deprecated":false,"hidden":false,"href":"/20240301/product-modules/insights/revenue-analytics/mrr-customer-waterfall"},{"title":"MRR product waterfall","deprecated":false,"hidden":false,"href":"/20240301/product-modules/insights/revenue-analytics/mrr-product-waterfall"},{"title":"Net annual recurring revenue","deprecated":false,"hidden":false,"href":"/20240301/product-modules/insights/revenue-analytics/net-annual-recurring-revenue"},{"title":"Net revenue retention","deprecated":false,"hidden":false,"href":"/20240301/product-modules/insights/revenue-analytics/net-revenue-retention"}]}]},{"group":"Invoices","pages":[{"title":"Invoices","deprecated":false,"hidden":false,"href":"/20240301/product-modules/invoices/index"},{"title":"Life cycle of an invoice","deprecated":false,"hidden":false,"href":"/20240301/product-modules/invoices/life-cycle-of-an-invoice"},{"title":"Create invoices","deprecated":false,"hidden":false,"href":"/20240301/product-modules/invoices/generating-invoices-in-zenskar"},{"title":"Create one-off invoices","deprecated":false,"hidden":false,"href":"/20240301/product-modules/invoices/create-one-off-invoices"},{"title":"Consolidating invoices","deprecated":false,"hidden":true,"href":"/20240301/product-modules/invoices/consolidating-invoices"},{"title":"How to edit an invoice","deprecated":false,"hidden":false,"href":"/20240301/product-modules/invoices/how-to-edit-an-invoice"},{"title":"Credit notes","deprecated":false,"hidden":false,"href":"/20240301/product-modules/invoices/credit-notes"}]},{"group":"Payments","pages":[{"group":"Concepts","expanded":false,"pages":[{"title":"Payments","sidebarTitle":"Payments","href":"/20240301/product-modules/payments/concepts/payments"},{"title":"Default payment method","sidebarTitle":"Default payment method","href":"/20240301/product-modules/payments/concepts/default-payment-method"}]},{"group":"Walkthroughs","expanded":false,"pages":[{"title":"Payments","sidebarTitle":"Payments","href":"/20240301/product-modules/payments/walkthroughs/payments"}]},{"group":"How-to guides","expanded":false,"pages":[{"title":"How to connect a payment gateway","sidebarTitle":"Connect a payment gateway","href":"/20240301/product-modules/payments/how-to-guides/connect-a-payment-gateway"},{"title":"How to manage payments","sidebarTitle":"Manage payments","href":"/20240301/product-modules/payments/how-to-guides/manage-payments"}]},{"group":"Reference","expanded":false,"pages":[{"title":"Payments reference","sidebarTitle":"Payments","href":"/20240301/product-modules/payments/reference/payments"}]}]},{"group":"Products","pages":[{"group":"Concepts","expanded":false,"pages":[{"title":"Products","sidebarTitle":"Products","href":"/20240301/product-modules/products/concepts/products"},{"title":"Features","sidebarTitle":"Features","href":"/20240301/product-modules/products/concepts/feature"}]},{"group":"Walkthroughs","expanded":false,"pages":[{"title":"Products","sidebarTitle":"Products","href":"/20240301/product-modules/products/walkthroughs/products"}]},{"group":"How-to guides","expanded":false,"pages":[{"title":"How to add a product","sidebarTitle":"Add a product","href":"/20240301/product-modules/products/how-to-guides/add-a-product"},{"title":"How to manage products","sidebarTitle":"Manage products","href":"/20240301/product-modules/products/how-to-guides/manage-products"}]},{"group":"Reference","expanded":false,"pages":[{"title":"Products reference","sidebarTitle":"Products","href":"/20240301/product-modules/products/reference/products"}]}]},{"group":"Usage","pages":[{"group":"Concepts","expanded":false,"pages":[{"title":"Billable metrics","deprecated":false,"hidden":false,"href":"/20240301/product-modules/usage/concepts/billable-metrics"},{"title":"What is a usage event","deprecated":false,"hidden":false,"href":"/20240301/product-modules/usage/concepts/usage-event"}]},{"group":"Data sources","expanded":false,"pages":[{"title":"Data ingestion","deprecated":false,"hidden":false,"href":"/20240301/product-modules/usage/data-sources/data-ingestion"},{"title":"How-to: Ingest usage events via data sync connectors","deprecated":false,"hidden":false,"href":"/20240301/product-modules/usage/data-sources/data-ingestion-via-data-source-connectors"},{"title":"How-to: Execute remote queries on data source","deprecated":false,"hidden":false,"href":"/20240301/product-modules/usage/data-sources/data-ingestion-via-remote-query"}]},{"group":"Usage events","expanded":false,"pages":[{"title":"How-to: Ingest usage events","deprecated":false,"hidden":false,"href":"/20240301/product-modules/usage/usage-event/data-ingestion-via-apis"},{"title":"How-to: Ingest usage events via CSV upload","deprecated":false,"hidden":false,"href":"/20240301/product-modules/usage/usage-event/data-ingestion-via-zenskar-compatible-csv-file"},{"title":"How-to: Handle ingestion failures","deprecated":false,"hidden":false,"href":"/20240301/product-modules/usage/usage-event/handle-usage-event-ingestion-failures"},{"title":"How-to: Edit historical data","deprecated":false,"hidden":false,"href":"/20240301/product-modules/usage/usage-event/how-to-edit-historical-data"},{"title":"How-to: Set up S3 Event Sync","deprecated":false,"hidden":false,"href":"/20240301/product-modules/usage/usage-event/how-to-set-up-s3-event-sync"},{"title":"How-to: Ingest usage events via dashboard","deprecated":false,"hidden":false,"href":"/20240301/product-modules/usage/usage-event/web-form-for-manual-raw-metrics"}]}]},{"group":"Settings","pages":[{"title":"General settings","deprecated":false,"hidden":false,"href":"/20240301/product-modules/settings/general"},{"title":"Business entity","deprecated":false,"hidden":false,"href":"/20240301/product-modules/settings/business-entity"},{"title":"Payment instructions","deprecated":false,"hidden":false,"href":"/20240301/product-modules/settings/payment-instructions"},{"title":"Payment","deprecated":false,"hidden":false,"href":"/20240301/product-modules/settings/payment"},{"title":"Communications settings","deprecated":false,"hidden":false,"href":"/20240301/product-modules/settings/communications"},{"group":"Contract \u0026 Invoices","expanded":false,"pages":[{"title":"Contract \u0026 Invoices","deprecated":false,"hidden":false,"href":"/20240301/product-modules/settings/contract-invoices"},{"group":"Invoice date configuration","expanded":false,"pages":[{"title":"Concepts","href":"/20240301/product-modules/settings/invoice-date-configuration/concepts"},{"title":"How-to guides","href":"/20240301/product-modules/settings/invoice-date-configuration/how-to-guides"},{"title":"Reference","href":"/20240301/product-modules/settings/invoice-date-configuration/reference"}]}]},{"title":"Single sign-on authentication","deprecated":false,"hidden":false,"href":"/20240301/product-modules/settings/single-sign-on-authentication"},{"title":"Webhook alerts","deprecated":false,"hidden":false,"href":"/20240301/product-modules/settings/webhook-alerts"},{"title":"Zenskar IPs","deprecated":false,"hidden":false,"href":"/20240301/product-modules/settings/zenskar-ips"},{"title":"S3 Ingestion","deprecated":false,"hidden":false,"href":"/20240301/product-modules/settings/s3-ingestion"},{"title":"Custom attributes","deprecated":false,"hidden":false,"href":"/20240301/product-modules/settings/custom-attributes"},{"title":"API keys","deprecated":false,"hidden":false,"href":"/20240301/product-modules/settings/api-keys"}]},{"group":"More","pages":[{"title":"Entitlements","deprecated":false,"hidden":false,"href":"/20240301/product-modules/more/entitlements"},{"group":"Communications","expanded":false,"pages":[{"title":"Communications","deprecated":false,"hidden":false,"href":"/20240301/product-modules/more/communications/index"},{"title":"Document templates","deprecated":false,"hidden":false,"href":"/20240301/product-modules/more/communications/document-templates"},{"title":"Email alerts","deprecated":false,"hidden":false,"href":"/20240301/product-modules/more/communications/email-alerts"},{"title":"Email templates","deprecated":false,"hidden":false,"href":"/20240301/product-modules/more/communications/email-templates"},{"group":"Template guides","expanded":false,"pages":[{"title":"Templating guide","deprecated":false,"hidden":false,"href":"/20240301/product-modules/more/communications/templating-guide"},{"title":"Invoice template variables","deprecated":false,"hidden":false,"href":"/20240301/product-modules/more/communications/invoice-template-variables"},{"title":"Credit note template variables","deprecated":false,"hidden":false,"href":"/20240301/product-modules/more/communications/credit-note-template-variables"},{"title":"Payment receipt template variables","deprecated":false,"hidden":false,"href":"/20240301/product-modules/more/communications/payment-receipt-template-variables"},{"title":"Usage report template variables","deprecated":false,"hidden":false,"href":"/20240301/product-modules/more/communications/usage-report-template-variables"}]},{"title":"Segments","deprecated":false,"hidden":false,"href":"/20240301/product-modules/more/communications/segments"},{"title":"Senders","deprecated":false,"hidden":false,"href":"/20240301/product-modules/more/communications/senders"},{"title":"Sent emails","deprecated":false,"hidden":false,"href":"/20240301/product-modules/more/communications/sent-emails"},{"title":"Usage alerts","deprecated":false,"hidden":false,"href":"/20240301/product-modules/more/communications/usage-alerts"},{"title":"Configurations","deprecated":false,"hidden":false,"href":"/20240301/product-modules/more/communications/configurations"}]}]}]},{"group":"Security","pages":[{"group":"Role-based access control","expanded":false,"pages":[{"title":"RBAC","href":"/20240301/security/role-based-access-control/index"},{"title":"Roles","deprecated":false,"hidden":false,"href":"/20240301/security/role-based-access-control/roles"},{"title":"Users","deprecated":false,"hidden":false,"href":"/20240301/security/role-based-access-control/users"}]},{"group":"SAML authentication","expanded":false,"pages":[{"title":"Concepts","href":"/20240301/security/saml-authentication/concepts"},{"group":"How-to guides","expanded":false,"pages":[{"title":"SAML authentication with Microsoft Entra ID","deprecated":false,"hidden":false,"href":"/20240301/security/saml-authentication/how-to-guides/saml-authentication-with-microsoft-entra-id"},{"title":"SAML authentication with Google Workspace","deprecated":false,"hidden":false,"href":"/20240301/security/saml-authentication/how-to-guides/saml-authentication-with-google-workspace"},{"title":"SAML authentication with Okta","deprecated":false,"hidden":false,"href":"/20240301/security/saml-authentication/how-to-guides/saml-authentication-with-okta"}]},{"title":"Reference","href":"/20240301/security/saml-authentication/reference"}]},{"title":"Two-factor authentication","deprecated":false,"hidden":false,"href":"/20240301/security/two-factor-authentication"}]},{"group":"Model context protocol (MCP)","pages":[{"title":"Concepts","href":"/20240301/model-context-protocol/concepts"},{"title":"Walkthroughs","href":"/20240301/model-context-protocol/walkthroughs"},{"title":"How-to guides","deprecated":false,"hidden":false,"href":"/20240301/model-context-protocol/how-to-guides"},{"title":"Reference","deprecated":false,"hidden":false,"href":"/20240301/model-context-protocol/reference"}]},{"group":"Pricing models","pages":[{"title":"Custom tiered pricing","deprecated":false,"hidden":true,"href":"/20240301/pricing-models/custom-tiered"},{"title":"Flat-fee pricing","deprecated":false,"hidden":false,"href":"/20240301/pricing-models/flat-fee"},{"title":"Matrix pricing","deprecated":false,"hidden":false,"href":"/20240301/pricing-models/matrix"},{"title":"Package pricing","deprecated":false,"hidden":true,"href":"/20240301/pricing-models/package"},{"title":"Percent pricing","deprecated":false,"hidden":false,"href":"/20240301/pricing-models/percent"},{"title":"Per-unit pricing","deprecated":false,"hidden":false,"href":"/20240301/pricing-models/per-unit"},{"title":"Step pricing","deprecated":false,"hidden":false,"href":"/20240301/pricing-models/step"},{"title":"Tiered pricing","deprecated":false,"hidden":false,"href":"/20240301/pricing-models/tiered"},{"title":"Tiered pricing with flat fee","deprecated":false,"hidden":false,"href":"/20240301/pricing-models/tiered-pricing-with-flat-fee"},{"title":"Two-dimensional tiered pricing","deprecated":false,"hidden":false,"href":"/20240301/pricing-models/two-dimensional-tiered"},{"title":"Volume","deprecated":false,"hidden":false,"href":"/20240301/pricing-models/volume"},{"title":"Volume pricing with flat fee","deprecated":false,"hidden":false,"href":"/20240301/pricing-models/volume-with-flat-fee"}]},{"group":"Third-party integrations","pages":[{"title":"Third-party integrations","href":"/20240301/third-party-integrations/index"},{"group":"Data sources","expanded":false,"pages":[{"title":"Auth0","deprecated":false,"hidden":false,"href":"/20240301/third-party-integrations/data-sources/auth0"},{"title":"Amazon Athena","href":"/20240301/third-party-integrations/data-sources/amazon-athena"},{"title":"Amazon Redshift","href":"/20240301/third-party-integrations/data-sources/amazon-redshift"},{"title":"BigQuery","deprecated":false,"hidden":false,"href":"/20240301/third-party-integrations/data-sources/bigquery"},{"title":"ClickHouse","deprecated":false,"hidden":false,"href":"/20240301/third-party-integrations/data-sources/clickhouse"},{"title":"CockroachDB","deprecated":false,"hidden":false,"href":"/20240301/third-party-integrations/data-sources/cockroachdb"},{"title":"Databricks Lakehouse","deprecated":false,"hidden":false,"href":"/20240301/third-party-integrations/data-sources/databricks-lakehouse"},{"title":"Google Sheets","deprecated":false,"hidden":false,"href":"/20240301/third-party-integrations/data-sources/google-sheets"},{"title":"Looker","deprecated":false,"hidden":false,"href":"/20240301/third-party-integrations/data-sources/looker"},{"title":"Metabase","deprecated":false,"hidden":false,"href":"/20240301/third-party-integrations/data-sources/metabase"},{"title":"MongoDB","deprecated":false,"hidden":false,"href":"/20240301/third-party-integrations/data-sources/mongodb"},{"title":"MySQL","deprecated":false,"hidden":false,"href":"/20240301/third-party-integrations/data-sources/mysql"},{"title":"PostgreSQL","deprecated":false,"hidden":false,"href":"/20240301/third-party-integrations/data-sources/postgresql"},{"title":"QuickBooks","deprecated":false,"hidden":false,"description":null,"href":"/20240301/third-party-integrations/data-sources/quickbooks"},{"title":"Shopify","deprecated":false,"hidden":false,"href":"/20240301/third-party-integrations/data-sources/shopify"},{"group":"Snowflake","expanded":false,"pages":[{"title":"Snowflake","description":"Integrating Snowflake with Zenskar involves setting up Snowflake for integration and then configuring Zenskar to connect with Snowflake.","href":"/20240301/third-party-integrations/data-sources/snowflake/index"},{"title":"Set up Snowflake for integration with Zenskar","sidebarTitle":"Set up Snowflake","href":"/20240301/third-party-integrations/data-sources/snowflake/set-up-snowflake"},{"title":"Configure Zenskar's Snowflake connector","sidebarTitle":"Configure Snowflake","href":"/20240301/third-party-integrations/data-sources/snowflake/configure-snowflake"}]}]},{"group":"ERPs","expanded":false,"pages":[{"title":"NetSuite","deprecated":false,"hidden":false,"href":"/20240301/third-party-integrations/ERPs/netsuite"},{"title":"QuickBooks","deprecated":false,"hidden":false,"href":"/20240301/third-party-integrations/ERPs/quickbooks"},{"title":"Rillet","deprecated":false,"hidden":false,"href":"/20240301/third-party-integrations/ERPs/rillet"},{"title":"Xero","deprecated":false,"hidden":false,"href":"/20240301/third-party-integrations/ERPs/xero"},{"title":"Zoho Books","deprecated":false,"hidden":false,"href":"/20240301/third-party-integrations/ERPs/zoho-books"}]},{"group":"CRMs and CPQs","expanded":false,"pages":[{"title":"HubSpot","deprecated":false,"hidden":false,"href":"/20240301/third-party-integrations/CRMs-and-CPQs/hubspot"},{"group":"Salesforce","expanded":false,"pages":[{"title":"Salesforce integration guide","href":"/20240301/third-party-integrations/CRMs-and-CPQs/salesforce/index"},{"title":"Installation and setup of Zenskar’s package for Salesforce","href":"/20240301/third-party-integrations/CRMs-and-CPQs/salesforce/install-and-set-up-zenskar-package"},{"title":"Use default Flow","href":"/20240301/third-party-integrations/CRMs-and-CPQs/salesforce/default-flow"},{"title":"Create your own Flow","href":"/20240301/third-party-integrations/CRMs-and-CPQs/salesforce/custom-flow"}]}]},{"group":"Tax automation","expanded":false,"pages":[{"title":"Avalara AvaTax","deprecated":false,"hidden":false,"href":"/20240301/third-party-integrations/tax-automation/avalara-avatax"},{"title":"Anrok","deprecated":false,"hidden":false,"href":"/20240301/third-party-integrations/tax-automation/anrok"},{"title":"Tax engine comparison","deprecated":false,"hidden":false,"href":"/20240301/third-party-integrations/tax-automation/tax-engine-comparison"}]},{"group":"Payment gateways","expanded":false,"pages":[{"title":"Stripe","deprecated":false,"hidden":false,"href":"/20240301/third-party-integrations/payment-gateways/stripe"}]}]},{"group":"Zenskar versioning","pages":[{"title":"Versioning logic","href":"/meta/versioning-logic"},{"title":"Documentation version to backend build compatibility matrix","href":"/meta/matrix"}]}]},{"tab":"API Guides","pages":[{"title":"API Guides","href":"/20240301/api-guides/authentication"}]},{"tab":"API Reference","pages":[{"title":"API Reference","href":"/api-reference/accounting/get-chart-of-accounts"}]}]}]},"title":"Shopify - Zenskar Documentation","buildId":"dpl_DGmhKsAzJdVqypJzon18vViniWRY","deploymentId":"dpl_DGmhKsAzJdVqypJzon18vViniWRY","dynamics":[],"chunks":[]}