ProductVariants
Stores variant-level data for products, including SKU, option values, price, and inventory management fields.
Table-Specific Information
Select
The connector uses the Shopify API to process WHERE clause conditions built with the following columns and operators. The connector processes other filters client-side within the connector.
- Id supports the '=, IN' comparison operators.
- ProductId supports the '=, !=' comparison operators.
- Barcode supports the '=, !=' comparison operators.
- Sku supports the '=, !=' comparison operators.
- Title supports the '=, !=' comparison operators.
- UpdatedAt supports the '=, !=, <, >, >=, <=' comparison operators.
- Taxable supports the '=, !=' comparison operators.
- DeliveryProfileId supports the '=, !=' comparison operators.
- LocationInventoryQuantity supports the '=, <, >, >=, <=' comparison operators.
For example, the following queries are processed server-side:
SELECT * FROM ProductVariants WHERE Id = 'Val1'
SELECT * FROM ProductVariants WHERE ProductId = 'Val1'
SELECT * FROM ProductVariants WHERE Barcode = 'Val1'
SELECT * FROM ProductVariants WHERE Sku = 'Val1'
SELECT * FROM ProductVariants WHERE Title = 'Val1'
SELECT * FROM ProductVariants WHERE UpdatedAt = '2023-01-01 11:10:00'
SELECT * FROM ProductVariants WHERE Taxable = true
SELECT * FROM ProductVariants WHERE DeliveryProfileId = 'Val1'
SELECT * FROM ProductVariants WHERE LocationInventoryQuantity = 123
Insert
The following columns can be used to create a new record:
ProductId, Barcode, Price, CompareAtPrice, TaxCode, Taxable, InventoryPolicy, InventoryItemUnitCostAmount, InventoryItemHarmonizedSystemCode, InventoryItemMeasurementWeightValue, InventoryItemMeasurementWeightUnit, InventoryItemRequiresShipping, InventoryItemTracked
The following pseudo-columns can be used to create a new record:
MediaId, MediaSrc, InventoryQuantities (references InventoryItemInventoryLevelQuantities), OptionValues (references ProductOptionValues), Metafields (references Metafields), Strategy
InventoryItemInventoryLevelQuantities Temporary Table Columns
| Column Name | Type | Description |
| InventoryLevelLocationId | String | A globally-unique ID. |
| Quantity | Int | The quantity for the quantity name. |
ProductOptionValues Temporary Table Columns
| Column Name | Type | Description |
| ProductOptionId | String | A globally-unique ID. |
| ProductOptionName | String | The product option's name. |
| Id | String | A globally-unique ID. |
| Name | String | Value associated with an option. |
| LinkedMetafieldValue | String | Metafield value associated with an option. |
Metafields Temporary Table Columns
| Column Name | Type | Description |
| Id | String | The unique ID of the metafield. |
| Namespace | String | A container for a set of metafields. You need to define a custom namespace for your metafields to distinguish them from the metafields used by other apps. |
| Key | String | The name of the metafield. |
| Value | String | The information to be stored as metadata. |
| Type | String | The metafield's information type. |
Update
The following columns can be updated:
ProductId, Barcode, Price, CompareAtPrice, TaxCode, Taxable, InventoryPolicy, InventoryItemUnitCostAmount, InventoryItemHarmonizedSystemCode, InventoryItemMeasurementWeightValue, InventoryItemMeasurementWeightUnit, InventoryItemRequiresShipping, InventoryItemTracked
The following pseudo-columns can be used to update a record:
MediaId, MediaSrc, OptionValues (references ProductOptionValues), Metafields (references Metafields), AllowPartialUpdates
ProductOptionValues Temporary Table Columns
| Column Name | Type | Description |
| ProductOptionId | String | A globally-unique ID. |
| ProductOptionName | String | The product option's name. |
| Id | String | A globally-unique ID. |
| Name | String | Value associated with an option. |
| LinkedMetafieldValue | String | Metafield value associated with an option. |
Metafields Temporary Table Columns
| Column Name | Type | Description |
| Id | String | The unique ID of the metafield. |
| Namespace | String | A container for a set of metafields. You need to define a custom namespace for your metafields to distinguish them from the metafields used by other apps. |
| Key | String | The name of the metafield. |
| Value | String | The information to be stored as metadata. |
| Type | String | The metafield's information type. |
Delete
You can delete entries by specifying the following columns:
Id, ProductId
Columns
| Name | Type | ReadOnly | References | Description |
| Id [KEY] | String | True |
A globally unique identifier for the product variant record. | |
| LegacyResourceId | Long | True |
The numeric identifier of the corresponding resource in the REST Admin API, used for backward compatibility. | |
| ProductId | String | False |
Products.Id |
The globally unique identifier of the parent product associated with this variant. |
| Position | Int | True |
The position of the variant in the product's variant list. The first position is numbered 1. | |
| DisplayName | String | True |
The display name of the variant, typically combining the product title with the variant's option values. | |
| Barcode | String | False |
The barcode, UPC, or ISBN value assigned to the product variant for identification and scanning purposes. | |
| Sku | String | True |
The stock keeping unit (SKU) that uniquely identifies the variant in the shop and fulfillment systems. Required for integration with fulfillment services. | |
| Title | String | True |
The title of the product variant, usually representing its distinguishing option values, such as 'Red / Large'. | |
| RequiresComponents | Bool | True |
Indicates whether this variant requires bundle components. If true, the variant can only be purchased as part of a bundle and is excluded from sales channels that don't support bundles. | |
| UpdatedAt | Datetime | True |
The timestamp of the most recent update made to the product variant. | |
| CreatedAt | Datetime | True |
The timestamp indicating when the variant was created in Shopify. | |
| SelectedOptions | String | True |
A list of the product option names and values that define this variant, such as 'Size: Medium, Color: Blue'. | |
| AvailableForSale | Bool | True |
Indicates whether the variant is currently available for sale on any channel. | |
| Price | Decimal | False |
The price of the product variant in the shop's base currency. | |
| CompareAtPrice | Decimal | False |
The original or reference price of the variant, displayed as a compare-at price to indicate a discount. | |
| TaxCode | String | False |
The tax classification code applied to the product variant for compliance and reporting. | |
| Taxable | Bool | False |
Indicates whether sales tax is charged when the product variant is sold. | |
| SellableOnlineQuantity | Int | True |
The total quantity of the variant available for online sales. This does not always represent total stock across all locations. | |
| SellingPlanGroupsCount | Int | True |
The number of selling plan groups (such as subscription plans) associated with this variant. | |
| SellingPlanGroupsCountPrecision | String | True |
Indicates the accuracy of the selling plan group count, such as 'exact' or 'estimated'. | |
| DeliveryProfileId | String | True |
The globally unique identifier of the delivery profile that defines how this variant is shipped. | |
| InventoryPolicy | String | False |
Specifies whether customers can purchase the variant when it is out of stock, following policies like 'deny' or 'continue'. | |
| InventoryQuantity | Int | True |
The total quantity of this variant available for sale across all managed locations. | |
| InventoryItemId | String | True |
The globally unique identifier of the inventory item linked to this variant. | |
| InventoryItemUnitCostAmount | Decimal | False |
The unit cost of the inventory item, representing the merchant's cost price. | |
| InventoryItemUnitCostCurrencyCode | String | True |
The ISO 4217 currency code for the inventory item's unit cost, such as USD or EUR. | |
| InventoryItemHarmonizedSystemCode | String | False |
The harmonized system (HS) code used for international customs classification of the item. | |
| InventoryItemMeasurementWeightValue | Double | False |
The numeric weight value of the item, based on the specified measurement unit. | |
| InventoryItemMeasurementWeightUnit | String | False |
The unit of measurement used for the weight value, such as 'kg' or 'oz'. | |
| InventoryItemRequiresShipping | Bool | False |
Indicates whether the inventory item requires shipping. Digital goods typically return false. | |
| InventoryItemTracked | Bool | False |
Indicates whether inventory tracking is enabled for this item. When true, stock levels are monitored by Shopify. | |
| ImageId | String | True |
The globally unique identifier of the image associated with this variant. | |
| ImageAltText | String | True |
Alternative text describing the content or purpose of the variant image for accessibility or SEO. | |
| ImageHeight | Int | True |
The height of the variant image in pixels. Returns null if the image is not hosted by Shopify. | |
| ImageWidth | Int | True |
The width of the variant image in pixels. Returns null if the image is not hosted by Shopify. | |
| ImageUrl | String | True |
The URL where the variant image is hosted and accessible. | |
| UnitPriceMeasurementMeasuredType | String | True |
Specifies the type of measurement used for unit pricing, such as 'volume' or 'weight'. | |
| UnitPriceMeasurementQuantityUnit | String | True |
Defines the quantity unit for unit price measurement, such as 'ml', 'g', or 'oz'. | |
| UnitPriceMeasurementQuantityValue | Double | True |
The numeric value representing the measured quantity for the unit price calculation. | |
| UnitPriceMeasurementReferenceUnit | String | True |
The reference unit used to calculate the standardized unit price, such as '100ml' or '1kg'. | |
| UnitPriceMeasurementReferenceValue | Int | True |
The numeric value representing the reference amount for the unit price measurement. | |
| LocationInventoryQuantity | Int | True |
Filters or reports the available inventory quantity for the variant at specific locations. |
Pseudo-Columns
Pseudo-columns are fields that can only be used in the types of statements under which they are explicitly listed. They are not standard columns but instead provide additional functionality for specific operations.
| Name | Type | Description |
| MediaId | String |
The identifier of the media file (such as an image or video) to associate with this variant. |
| MediaSrc | String |
The URL of the media file associated with this variant. |
| InventoryQuantities | String |
A list of inventory quantities for this variant at each stocked location. The list size is limited by the merchant's plan. |
| OptionValues | String |
A list of option values defining this variant, representing the specific selections of the parent product's options. |
| Metafields | String |
Holds custom metadata fields used to extend the variant with additional attributes or integration data. |
| Strategy | String |
Defines how variant behavior is handled when new variants are created. 'DEFAULT' retains the single default variant; 'REMOVE_STANDALONE_VARIANT' deletes the default variant when new variants are generated. The allowed values are DEFAULT, REMOVE_STANDALONE_VARIANT. |
| AllowPartialUpdates | Bool |
Determines whether valid variant updates are saved when some variants fail validation. If true, successful updates are applied while invalid ones are skipped; if false, all updates are rolled back on error. |