🍏

ProductVariants

How to read this page

Each schema page contains the following columns

  • Default Field Name
    • The field name Shoptable creates on the table.
  • Direct from API
    • Whether the value of the field is directly taken from the Shopify GraphQL API.
    • If this checked then you can find more information about the field on the documentation page for the object with matching "Default Column Name".
      • e.g. Products.title is a field directly taken from the API. Find out more information by going to the Products documentation page and going to the field named "title".
        • Each schema page will have a link to the matching object GraphQL documentation page.
      • Any field with "Direct from API" checked will not have a value in the "Description" column.
  • Description
    • Information about the field if it's not directly taken from the Shopify GraphQL API.
    • Oftentimes this will simply indicate which properties to look up on the object
      • Pattern: <object_name>.<property_name>
        • There may be multiple property names
  • Editable from Airtable
    • Whether or not the field is editable from Airtable to Shopify.
    • If this is checked then you can modify the field within Airtable and sync back to Shopify using the sync button.
      • If you make changes to other fields and sync the record to Shopify, these fields will be reverted back to their previous value.
The product_variants table also contains properties from the InventoryItems object. This is because each product variant has a 1-1 relationship with an InventoryItem object so it's not necessary to have a dedicated table for InventoryItems As a result, there's an additional column called Parent Object that specifies whether the field is derived from a ProductVariant or an InventoryItem. Both documentation pages are listed below

GraphQL Documentation

Product Variant Schema

Default Field NameParent ObjectDirect from APIDescriptionEditable from Airtable
displayName
ProductVariant
id
ProductVariant
createdAt
ProductVariant
updatedAt
ProductVariant
title
ProductVariant
availableForSale
ProductVariant
price
ProductVariant
compareAtPrice
ProductVariant
image
ProductVariant
productVariant.image.originalSrc
inventoryItem
ProductVariant
JSON in the shape of { "id": productVariant.inventoryItem.id }
inventoryPolicy
ProductVariant
product
ProductVariant
An airtable record link to the related product that will be filled in if the products table is also synced
product.id
ProductVariant
productVariant.product.id
inventoryQuantity
ProductVariant
selectedOptions.1
ProductVariant
the first item in productVariant.selectedItems
selectedOptions.2
ProductVariant
the second item in productVariant.selectedItems
selectedOptions.3
ProductVariant
the third item in productVariant.selectedItems
storefrontId
ProductVariant
sku
ProductVariant
taxable
ProductVariant
fulfillmentService
ProductVariant
JSON in the shape of { "id": productVariant.fulfillmentService.id }
fulfillmentServiceEditable
ProductVariant
JSON of productVariant.fulfillmentServiceEditable with all its properties
weight
ProductVariant
weightUnit
ProductVariant
deliveryProfile
ProductVariant
JSON in the shape of { "id": productVariant.deliveryProfile.id }
requiresShipping
ProductVariant
taxCode
ProductVariant
barcode
ProductVariant
legacyResourceId
ProductVariant
position
ProductVariant
inventoryItem.id
InventoryItem
inventoryItem.id
inventoryItem.createdAt
InventoryItem
inventoryItem.createdAt
inventoryItem.updatedAt
InventoryItem
inventoryItem.updatedAt
inventoryItem.legacyResourceId
InventoryItem
inventoryItem.legacyResourceId
duplicateSkuCount
InventoryItem
inventoryHistoryUrl
InventoryItem
locationsCount
InventoryItem
harmonizedSystemCode
InventoryItem
countryCodeOfOrigin
InventoryItem
provinceCodeOfOrigin
InventoryItem
tracked
InventoryItem
trackedEditable
InventoryItem
unitCost.amount
InventoryItem
inventoryItem.unitCost.amount
unitCost.currencyCode
InventoryItem
inventoryItem.unitCost.currencyCode