Skip to main content

Shopify Integration

Connect your Shopify store to Toolio for sales, inventory, and product data using a Client ID and Secret or an access token.

Toolio provides turn-key integration with your Shopify store. Once connected, Shopify can serve as a source of truth for your Sales, Inventory and Product information. For how this fits alongside your other data sources, see the Toolio Integration Guide.

There are two ways to authenticate, depending on when your Shopify app was created. You only need one of them.

❗ Shopify stopped allowing new custom apps to be created in the Shopify admin on January 1, 2026. Custom apps created before that date are unaffected and continue to work — if your integration is already running, you do not need to change anything.

Shopify Feeds

Products, variants and collections

Provides variant level meta-data and pricing information. Shopify will likely not have the merchandise hierarchy information you need for planning. In this case, you can manually upload product attributes directly into Toolio.

Orders, transactions and fulfillments

Provides variant and location level sale information. If you are running all your commerce activity on Shopify, then Shopify will be your source of truth for sales information. If not, integrating the sales feed from your ERP will be a better option.

Inventory

Provides variant and location level daily inventory information. Toolio snapshots your inventory daily, so that you can leverage historical inventory data effectively.

Which Credentials Do You Need?

Client credentials are a Client ID and Client Secret pair. Use these if you are setting up a new integration, or if your app was created in the Shopify Dev Dashboard. Toolio exchanges them for a short-lived access token and refreshes it automatically — there is nothing for you to rotate or re-enter.

An access token is a single long-lived value that you paste into Toolio. Use this if your custom app was created in your Shopify admin before January 1, 2026. It keeps working exactly as it always has.

💡 Fill in one set of credentials, not both. If both are present, Toolio uses the access token and ignores the Client ID and Secret.

How to Connect Shopify to Toolio

1. Create your Shopify app

If you already have a working custom app created in your Shopify admin, skip to step 2 and keep using it.

For a new integration, create the app in the Shopify Dev Dashboard and install it on your store. Shopify will give you a Client ID and a Client Secret rather than an access token.

[Screenshot: Shopify Dev Dashboard showing the Client ID and Client Secret for an installed app]

2. Grant read access for the required scopes

Toolio needs read access to all five of the following Admin API scopes:

  • read_products

  • read_orders

  • read_all_orders

  • read_locations

  • read_inventory

Here is an example for how to grant access for the inventory scope.

read_all_orders is required to read orders older than 60 days. Shopify treats it as a protected scope, so you may need to request it explicitly in your app's settings — without it, Toolio can only see your most recent 60 days of order history.

You can read more about API scopes in Shopify's documentation.

3. Provide your connection details

Share the following with your Customer Success Manager at Toolio, or enter them directly under Settings > Integrations:

Field

Notes

Shop Name

Your store's subdomain, for example my-store. Lowercase letters, numbers, and hyphens only. Entering the full my-store.myshopify.com also works.

Client ID

New apps only. Must be provided together with the Client Secret.

Client Secret

New apps only. Must be provided together with the Client ID.

Access Token

Existing apps only. Leave blank if you are using client credentials.

If you fill in only one of Client ID or Client Secret, Toolio rejects the save and tells you which half is missing.

[Screenshot: Toolio Shopify integration configuration form]

4. Test the connection

Click Test Connection. Toolio confirms it can reach your store and checks that all five required scopes have been granted.

If any scope is missing, the error names the specific scopes to add. Grant them in Shopify, then test again.

FAQs

Do I need to change anything if my integration already works?

No. Custom apps created in your Shopify admin before January 1, 2026 continue to work, and your existing access token remains valid. This change only affects new integrations.

What happens when the access token expires?

If you are using a Client ID and Client Secret, Toolio fetches a fresh token automatically before the old one expires. There is nothing to monitor or renew.

Can I switch an existing integration to client credentials?

Yes. Create an app in the Shopify Dev Dashboard, grant the same five scopes, then replace your access token with the Client ID and Client Secret. Clear the access token field so Toolio uses the new credentials.

Sales numbers in Toolio are not matching my Shopify report

You might have some customizations in your Shopify report, causing the sales numbers in Toolio to be different than what you have in your Shopify report. The best way to diagnose this discrepancy is:

  1. Focus on identifying the discrepancy on the smallest time aggregation possible; ideally 1 day.

  2. Make sure that the same filters are applied on Toolio & Shopify

  3. Make sure that you are comparing the right metrics

Let's go through the steps of how to achieve this.

See sales by SKU on a particular date

Toolio has an out of the box report under Sales > Sales by Location, which by default filters to the last 7 days. Use the date range in this report to pick 1 day where the sales numbers are not matching. Below is what the filter would look like

In the Shopify report, also find the same date, and make sure that it's broken down by SKU. Shopify has an out of the box report for this called Sales by Product Variant SKU. Then by comparing SKU by SKU, starting from the top selling SKU, you should be able to identify which SKU is being included in the Toolio report vs. Shopify Report

Make sure that same filters are applied

If you identify a SKU that is in Toolio, but not in your Shopify report, e.g. Freebies, Gift Bags, Excluded Channels, make sure that the same SKUs are being excluded using Import Filters.

Make sure that you are using the same metrics

Please familiarize yourself with the Shopify Metrics & Toolio Metrics, and make sure that you're comparing apples to apples. For example, Shopify definition of Gross Sales is inclusive of discounts, whereas Gross Sales Retail in Toolio excludes discounts. See Gross Sales Retail in Toolio is lower than expected below for more on this topic. It is always easiest to compare Shopify's Ordered Quantity to Toolio's Gross Sales Units as a starting point.

Gross Sales Cost in Toolio is lower than expected

Please make sure that all products in your Shopify account are attributed with accurate costs at the variant level. Please see how to bulk update products on Shopify here.

If you cannot update your pricing information on Shopify, you can use Toolio's data enriching capability; however, managing the sales cost information directly in Shopify (or your ERP) would be the recommended option.

Gross Sales Retail in Toolio is lower than expected

Gross Sales Retail in Toolio is defined as topline sales after discounts and markdown but before returns. Please note that this definition differs from "Gross Sales" in Shopify, which is before discounts. Please make sure that discounts and markdowns have been deducted from your Shopify Gross Sales when comparing against the Gross Sales Retail value in Toolio. You can read more about the metrics in Toolio and how they are defined here.

Discounts in Toolio are higher than expected

If you are using a returns solution such as Loop Returns, please read more about how exchanges are handled in Toolio here.

How are Markdowns captured with Shopify?

Please see this article to understand how Markdowns are calculated automatically as a part of the Shopify Integration.

Product Images are Incorrect

Please make sure that your product images are attributed at the variant level in Shopify, and that the Variant Ids in Shopify are identical to the Variant Ids on your product feed.

Sales Location Discrepancies

Because sales location from Shopify is captured after fulfillment has begun, please note that sales which have not yet entered the fulfillment process will be tagged with a default fulfillment location. Please consult with your Customer Success Manager to change your default location.

How are Returns Calculated?

Shopify Orders feed contains the items that were refunded in each Order, and that is the information Toolio uses to calculate returns. Note that the returns values are attributed to the day that the refund was initiated, not the date of they original sale.

How do Shopify API fields map into Toolio fields?

Sales Feed

Toolio Field

Shopify Field

sale_id

order.line_items.line_item_id

timestamp

order.created_at

variant_id

order.line_items.sku

sales_units

order.line_items.quantity

sales_cost

fetched from product feed

sales_retail

(lineItem.price) * lineItem.quantity - totalDiscount

markdown

Math.max(0,(NUMBER('{shopify_variant__compare_at_price}'

discount

sum(order.line_items.discount_allocations.amount)

returns_units

order.refunds.refund_line_items.quantity

returns_cost

fetched from product feed

returns_retail

order.refunds.refund_line_items.subtotal

location

origin_location.name

Did this answer your question?