Connect Shopify Products API to Google Sheets

Connecting the Shopify Products API to Google Sheets via SyncWith

In this reference we’ll look at how to setup a Shopify Products API connection.
We’ll use SyncWith to get your Shopify Product Data into Google Sheets. Please see our Shopify Guide to see a full listing of all our Shopify connections, templates, tutorial and specific Shopify use cases.
In SyncWith if you search for shopify you’ll get a few results, this guide deals with moving Shopify Product data into Google Sheets. You can check out our guides for Shopify Orders and General Shopify API GraphQL Queries.
As a reference this connector utilizes the Shopify Product API, if you’re curious about calling the api directly we have published a comprehensive Shopify API Guide. You can read the official Shopify API specs at https://shopify.dev/api/admin-rest/2022-04/resources/product#top.

Connect to Your Shopify Store

Connecting to shopify works slightly differently - you need to add the SyncWith app in Shopify and then your stores will automagically show up in the Google Sheets addon, here are instructions: Connect your Shopify account
notion image

Don’t Have SyncWith?

  • SyncWith is a Google Sheets Add On
  • SyncWith allows you to move data from any API into Google Sheets
  • Learn more about why Marketers love SyncWith
  • Check out our Google Workspace Listing and see why we’re the highest rated API add on with over 100,000 installs. Install today and get your data into Sheets in minutes.

Choosing Your Fields

Understanding Shopify’s Product Structure
  • Products aren’t really products - they don’t have prices, weights, or titles, a product is a container that holds the product variants and the product images
  • Products do have some fields:
    • Description
    • ID
    • List of images
    • Product type
  • Many of the attributes you think about when you think about a product are under the product variant, each product can have many variants each with it’s own fields:
    • Title
    • Price
    • Quantity in stock
    • Weight
  • For example you might have a product called “Insulated coffee mug” you can better understand why variants e
    • Variant 1
      • title: 16oz stainless steel
      • price: 24.99
      • inventory quantity: 10
    • Variant 2
      • title: 24oz power coat pink
      • price: 49.99
      • inventory quantity:3
In our connector we present all the fields available. If you choose fields related to a product variant you will get one row per product variant, if you pick only fields related to the product you will get one row per product.
Any time multiple value fields that could apply to a product - such as image URLs they are included in a single cell comma separated. You can use SPLIT() as a method to extract them, eg if you want to return the images to their own columns. If you feel we’re missing anything please contact support and we’ll prioritize the updating of our Shopify Products connector.
 
notion image
 
notion image
For example if you choose ID, Variant ID , Title and Variant Title you’ll get data that looks like:
notion image
You can see that there are new rows being created for each product variant. If we had only selected ID and Title then we would have gotten a single row. So including any product variant fields will expand the size of rows by # of products * # of variants.
Shopify Product API Fields
Metric
Description
ID
Unique identifier of every Shopify product. It is unique across not just a single shop but across all of shopify.
Description
Description of the product - supports HTML formatting and returns the raw HTML from the product description. Utilizes the body_html property. For example: <p>These amazing insulated coffee mugs are made from space age materials, guarenteed to keep your coffee <b>hot</b> or your smoothie <b>cold</b> </p>
Image URLs
The api returns an array of image objects, which we cast into a comma separated list of image URLs for the product.
Product Type
Returns the product type as defined by your Shopify Shop’s Product Types for filtering and searching products. Eg Scooters Skateboards Backpacks Running Shoes
Tags
Each product can have up to 250 tags. Again tags are useful to categorize multiple products into different categories, topics, uses, personas. For example you might have a Running Shoes product type but you might have shoes that are designed for winter and add the tags winter carbide spikes gore-tex
Status
Shows the product status there are 3 valid states: active: The product is ready to sell and is available to customers on the online store, sales channels, and apps. By default, existing products are set to active. archived: The product is no longer being sold and isn't available to customers on sales channels and apps. draft: The product isn't ready to sell and is unavailable to customers on sales channels and apps. By default, duplicated and unarchived products are set to draft.
Title
Name of the product
Updated At
Date and time when the product was last modified. Updates can include automated changes, for instance if inventory tracking is enabled the update of inventory amounts after a sale will count as an update. This means you can not necessarily use it to determine if a human made an edit.
Created At
Date and time the product was created.
Published At
Date and time the product was published to the store. If set to null it will unpublish the product from the Online Store channel.
Handle
A human friendly name for the product (vs it’s unique identifier). If not manually set it is automatically generated from the product’s title.
Published Scope
Indicates whether the product is published to the point of sale channel. Values include: web pubished to the online store channel but not published to the point of sale channel global published to both the online store channel and the point of sale channel
Template Suffix
he suffix of the Liquid template used for the product page. If this property is specified, then the product page uses a template called "product.suffix.liquid", where "suffix" is the value of this property. If this property is "" or null, then the product page uses the default template "product.liquid". (default: null)
Vendor
Name of the product vendor, eg a Macbook Air would have the vendor Apple. Air Jordan 1 Mid would have the vendor Nike
Shopify Product - Product Variant Fields
Metric
Description
Variant ID
Unique identifier of the product variant
Variant Title
This is a concatenation of the option1, option2 and option3 properties. Variant title cannot be updated directly and will change when the option properties are updated
Price
Price of the product variant
Compare At Price
Original price of the item before a sale or adjustment. Useful if you want to see how much you’re discounting items or perhaps if you want to analyze if you’re letting users stack coupons on top of sales items.
Inventory Quantity
Aggregate inventory of the product across all locations
Weight
weight of the product variant in the units set by Weight Unit
Weight Unit
The unit of measurement the product variant weight is set to use. Values include: g kg oz lb
Grams
Weight of the product variant in grams
SKU
A unique identifier for the product variant in the shop. Required in order to connect to a FulfillmentService (third party warehouse that prepares and ships orders on behalf of the store owner. Fulfillment services charge a fee to package and ship items and update product inventory levels).
Variant Created At
Date and time the product variant was created
Variant Updated At
The date and time when the product variant was last modified.
Taxable
Whether a tax is charged when the product variant is sold.
Barcode
The barcode, UPC, or ISBN number for the product.
Position
The order of the product variant in the list of product variants. The first position in the list is 1. The position of variants is indicated by the order in which they are listed.
Inventory Policy
Whether customers are allowed to place an order for the product variant when it's out of stock. Default value is deny Valid values: deny: Customers are not allowed to place orders for the product variant if it's out of stock. continue: Customers are allowed to place orders for the product variant if it's out of stock.
Inventory Item ID
The unique identifier for the inventory item, which is used in the Inventory API to query for inventory information.
Requires Shipping
This property is deprecated by Shopify
Fulfillment Service
Fulfillment service associated with the product
Inventory Management
Describes the service that is tracking how much is in stock, valid values include: shopify you are tracking the inventory yourself null you are not tracking inventory on the product variant fulfillment service handle the handle of the fullfilment service that is handling inventory management

Scheduling How Often you Sync Your Data to Google Sheets

Manual Refresh

Manual Refresh Is the default scheduling for a connection. Data will not be updated until you actively refresh it. In order to refresh the data you must either:
  • Refresh your data from in the SyncWith addon side bar via the refresh button - all connections can be manually refreshed
notion image
  • Refresh via the Add-on menu, allowing you to refresh all connections setup, or all connection(s) pushing data to the current active sheet
notion image
  • Refresh via the check box (located in the header above the data table)
notion image

Scheduled Refreshes

There are 3 options for scheduled refreshes:
  • Automatically refresh daily will refresh the data every day at the same time. The time is set based on when the connection was last updated. If you wish to set the refresh to happen at a specific time you would need to open the connection and save it at that time.
  • Automatically refresh hourly will refresh the data every hourly
  • Automatically refresh every 5 minutes will refresh the data every 5 minutes. This is not typically used for shopify data. But if you had a staff looking at all the recent orders it could make sense, you could constanly pull the current and last days data rapidly to monitor things in close to real time.

Need Help Analyzing your Shopify Product Data?

Contact Support and we can try and answer any questions you have.