Connect Shopify to Google Data Studio

What We’ll Cover

  • Connecting to Shopify via the SyncWith data studio connector
  • Example of how to pull in order data from Shopify
  • Additional details on how to create your own custom connections and reports or your orders
notion image

What You’ll Need

  • Data Studio account setup under your google account

Install and configure the Shopify connector

  1. Click here to go directly to our connector in Data Studio
    1. If you’ve never setup Data Studio before you will be required to complete your signup before installing the connector, if that’s the case you’ll see a dialogue like the one to the left, fill in your info and then continue.
    2. If you have multiple google accounts open in chrome at once sometimes you’ll see this dialogue open or email preferences
notion image
  1. Install the connector (if you haven’t already)
    1. notion image
  1. You be required to provide OAuth Permissions
    1. If you’re signed into multiple google accounts you may have to try this twice as sometimes google will show the first OAuth screen and not the second, be sure to try until you see 2nd screen (as shown below) and authorize SyncWith.
notion image
notion image
  1. You’ll know you’ve properly OAuthed when you see the service dropdown (shown in the below screenshot). The dropdown exists because you can use SyncWith to pull from a wide range of APIs into Data Studio - not just Shopify. For example you can choose from Facebook Ads, Notion, Shopify Orders, Stripe Charges, WooCommerce Orders and Zendesk tickets.
  1. Choose Shopify Orders as your service and click next
    1. notion image
  1. After pushing Next a drop down will appear to select an Ad Account, Initially the list will be empty:
notion image
  1. To get your Shopify account to show we need to connect a Shopify Account, we do this by following the link to SyncWith which will ensure we get the appropriate permissions to sync your Shopify Data to Data Studio
notion image
  1. Once you complete the Shopify authorization click next and this will force the account dropdown to populate, choose an account and then click the Next button and then finally click the Add button.

Want your Shopify Data Somewhere else?

SyncWith supports pushing your Shopoify ads data to other destinations if Data Studio isn’t what you were expecting:
  • Shopify to Databases (S3, BigQuery, MySQL, Postgres) - contact support to join our beta
notion image
 

Setting Up Shopify in Data Studio

Now that we have SyncWith setup and Shopify authorized with a Shopify account chosen we can configure our report.

Choose a Reporting Time Frame

Word of Caution on Long time periods

The Shopify API is paginated returning a maximum of 250 results per page and all orders must be cursored through with each request taking ~10 seconds. This is pretty slow and means 1000 orders will take appoximately 100 minutes to retrieve. While we handle all the complexity of getting a large number of orders retrieved we cannot make Shopify’s API respond faster, so plan accordingly.
  • Data studio lets you pick an Auto range which defaults to 28days or a Custom range
    • notion image
  • If you choose custom a calendar widget will come up and you’ll also see a drop down in the top right with a list of defaults, looks like this:
    • notion image
  • If you click the dropdown you’ll get a long list of options you can scroll through
    • notion image
  • You can also choose advanced which lets you choose two arbitrary and relative start and end dates
notion image

Choosing Your Fields

The Shopify Orders API has the concept of fields. Every row returned corresponds to an order so there is a cardinality of 1 and no additional dimensions to expand across.

Choosing Dimensions in Data Studio

  • Data studio uses a alphabetical listing by default which hides the most popular dimensions you’d want - see a summary of popular dimensions below
  • Use the search feature as demo’d in the gif - showing total line items price, total discounts, subtotal price and total tax being selected.
Shopify Order Fields
Metric
Description
Billing Info - Multiple Metrics
All of the billing address fields are available including: Billing Address 1 Billing Address 2 Billing City Billing Country Billing Phone Billing Name Billing Latitude, Billing Longitude are also available if you if you want to do marker based lat long mapping of sales, payment issues, etc.)
Shipping Info - Multiple Metrics
Similarily to Billing info all the shipping information is available (Address, City, Country, Phone, Name, Etc.
Order ID
This is the unique identifier of the order in question. If you ever wanted to cancel, close or re-open an order you need the order ID on any POST request to the orders API. Also useful for looking up or referencing the order in the Shopify app.
Order Status URL
Order status URL points to the order status page, this is handy to provide to customers as the order status page allows them to: - Check the status of their shipment - See real-time updates on the location of their shipment - Opt in or out of Messenger, SMS, and email notifications - Click to begin shopping in your online store again
Tags
Tags attached to the order, formatted as a string of comma-separated values. Tags are additional short descriptors, commonly used for filtering and searching. Each individual tag is limited to 40 characters in length.
Note
An optional note that a shop owner can attach to the order. For example Package arrive damaged Courier delivered to the wrong house
Email
Customer’s email address
Phone
Customer’s phone number for receiving SMS notifications
Customer Locale
The two or three-letter language code, optionally followed by a region modifier, for example english speaking in Canada would be en-ca, english speaking with no locale would be en
Browser IP
The IP address of the browser used by the customer when they placed the order. Both IPv4 and IPv6 are supported.
Created At
Time when the order was created in the Shopify app.
Closed At
The date and time when the order was closed. Returns null if the order isn't closed.
Updated At
The date and time when the order was last modified. Because the value can change when no visible fields of an order have been updated it may not be an appropriate field to sort by.
Cancelled At
There is no direct Status field so if you want to look at all cancelled orders within a list of all orders the presence of a cancelled date will help you do that. The date and time when the order was canceled. Returns null if the order isn't canceled. Use Cancel Reason to understand why a specific order was cancelled.
Cancelled Reason
Reason why the order was cancelled, values include: Customer The customer canceled the order. Fraud The order was fraudulent. Inventory Items in the order were not in inventory. Declined The payment was declined. Other A reason not in this list.
Currency Code
3 Letter code representing the currency of the shop (uses ISO 4217) examples include: AUD - Australian dollar EUR - Euro USD - United States Dollar CAD - Canadian Dollar
Total Price
Total of all item prices, discounts, shipping, taxes, and tips in the shop currency.
Subtotal Price
The price of the order in the shop currency after discounts but before shipping, duties, taxes, and tips.
Total Tax
The sum of all the taxes applied to the order in the shop currency.
Total Line Items Price
The sum of all line item prices in the shop currency.
Total Tip Received
The sum of all the tips in the order in the shop currency.
Total Outstanding
The total outstanding amount of the order in the shop currency.
Total Discounts
Provides the total discount on the order in the shop currency. This is useful to have to analyze at a broad scale if discounts are getting in the way of profitability.
Landing Site
The URL for the page where the buyer landed when they entered the shop. This can be useful if you want to understand the pages that drove orders. If you’ve created landing pages that you want to track the performance of this can be helpful or if you want to discover which landing pages are driving the most $.
Referring Site
The website where the customer clicked a link to the shop. Useful as another source of understanding where you’re driving sales from. Not all marketing is paid or controlled so you will not be able to set UTMs and other tracking variables against them. For example https://instagram.com
Source Name
The source of the checkout. To use this field for sales attribution, you must register the channels that your app is managing. You can find a list of your channels in the Partner Dashboard, in your app's Marketplace extension. You can specify a handle for each source which is what will show up here. For example instagram, web
Gateway
Payment gateway used for the order, for example shopify_payments.
Processing Method
Total Impressions less Viral Impressions. See Viral Impressions
Fulfillment Status
The order's status in terms of fulfilled line items. fulfilled Every line item in the order has been fulfilled. null None of the line items in the order have been fulfilled. partial At least one line item in the order has been fulfilled. restocked Every line item in the order has been restocked and the order canceled.
Financial Status
The financial status of the order: authorized Show only authorized orders pending Show only pending orders paid Show only paid orders partially_paid Show only partially paid orders refunded Show only refunded orders voided Show only voided orders partially_refunded Show only partially refunded orders any Show orders of any financial status. unpaid Show authorized and partially paid orders.
Location ID
The fulfillment origin of the order - used by Shopify to calculate applicable taxes. This is not the ID of the location where the order was placed.
Processed At
The date and time when an order was processed.
Total Weight
The sum of all line item weights in grams. The sum is not adjusted as items are removed from the order.
notion image

Need Help Getting Started?

  • Looking for paid consultation on building out your data studio dashboards? Contact SyncWith support and we’ll book time in to help whatever you need done