Summary
Toolio provides turn-key integration with your Shopify instance via Shopify Private Apps. With the Shopify integration, Shopify can serve as a source of truth for your Sales, Inventory and Product information. The table below gives an overview of the type of information available for each of the data feeds, and your options where Shopify doesn’t have all the required information.
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.
How to Integrate Shopify and Toolio
2. Grant ‘Read Access’ in Admin API for the following scopes:
Inventory
Locations
Products
Orders
You can read more about API Scopes on Shopify here
3. Share Integration Details
Please share the following integration details with your Customer Success manager at Toolio:
Admin API access token
API Key
API Secret Key
Shopify Shop Name
FAQs
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}' || 0) * NUMBER('{sales_units}') - '{discount}' - '{sales_retail}')) |
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 |