# ProductVariant - storefront - OBJECT
Version: 2025-01

## Description
A product variant represents a different version of a product, such as differing sizes or differing colors.


### Access Scopes
`unauthenticated_read_product_listings` access scope.


## Fields
* [availableForSale](/docs/api/storefront/2025-01/scalars/Boolean): Boolean! - Indicates if the product variant is available for sale.
* [barcode](/docs/api/storefront/2025-01/scalars/String): String - The barcode (for example, ISBN, UPC, or GTIN) associated with the variant.
* [compareAtPrice](/docs/api/storefront/2025-01/objects/MoneyV2): MoneyV2 - The compare at price of the variant. This can be used to mark a variant as on sale, when `compareAtPrice` is higher than `price`.
* [compareAtPriceV2](/docs/api/storefront/2025-01/objects/MoneyV2): MoneyV2 - The compare at price of the variant. This can be used to mark a variant as on sale, when `compareAtPriceV2` is higher than `priceV2`.
* [currentlyNotInStock](/docs/api/storefront/2025-01/scalars/Boolean): Boolean! - Whether a product is out of stock but still available for purchase (used for backorders).
* [id](/docs/api/storefront/2025-01/scalars/ID): ID! - A globally-unique ID.
* [image](/docs/api/storefront/2025-01/objects/Image): Image - Image associated with the product variant. This field falls back to the product image if no image is available.
* [metafield](/docs/api/storefront/2025-01/objects/Metafield): Metafield - A [custom field](https://shopify.dev/docs/apps/build/custom-data), including its `namespace` and `key`, that's associated with a Shopify resource for the purposes of adding and storing additional information.
* [metafields](/docs/api/storefront/2025-01/objects/Metafield): Metafield! - A list of [custom fields](/docs/apps/build/custom-data) that a merchant associates with a Shopify resource.
* [price](/docs/api/storefront/2025-01/objects/MoneyV2): MoneyV2! - The product variant’s price.
* [priceV2](/docs/api/storefront/2025-01/objects/MoneyV2): MoneyV2! - The product variant’s price.
* [product](/docs/api/storefront/2025-01/objects/Product): Product! - The product object that the product variant belongs to.
* [quantityAvailable](/docs/api/storefront/2025-01/scalars/Int): Int - The total sellable quantity of the variant for online sales channels.
* [quantityRule](/docs/api/storefront/2025-01/objects/QuantityRule): QuantityRule! - The quantity rule for the product variant in a given context.
* [requiresComponents](/docs/api/storefront/2025-01/scalars/Boolean): Boolean! - Whether a product variant requires components. The default value is `false`.
If `true`, then the product variant can only be purchased as a parent bundle with components.

* [requiresShipping](/docs/api/storefront/2025-01/scalars/Boolean): Boolean! - Whether a customer needs to provide a shipping address when placing an order for the product variant.
* [selectedOptions](/docs/api/storefront/2025-01/objects/SelectedOption): SelectedOption! - List of product options applied to the variant.
* [shopPayInstallmentsPricing](/docs/api/storefront/2025-01/objects/ShopPayInstallmentsProductVariantPricing): ShopPayInstallmentsProductVariantPricing - The Shop Pay Installments pricing information for the product variant.
* [sku](/docs/api/storefront/2025-01/scalars/String): String - The SKU (stock keeping unit) associated with the variant.
* [taxable](/docs/api/storefront/2025-01/scalars/Boolean): Boolean! - Whether tax is charged when the product variant is sold.
* [title](/docs/api/storefront/2025-01/scalars/String): String! - The product variant’s title.
* [unitPrice](/docs/api/storefront/2025-01/objects/MoneyV2): MoneyV2 - The unit price value for the variant based on the variant's measurement.
* [unitPriceMeasurement](/docs/api/storefront/2025-01/objects/UnitPriceMeasurement): UnitPriceMeasurement - The unit price measurement for the variant.
* [weight](/docs/api/storefront/2025-01/scalars/Float): Float - The weight of the product variant in the unit system specified with `weight_unit`.
* [weightUnit](/docs/api/storefront/2025-01/enums/WeightUnit): WeightUnit! - Unit of measurement for weight.

## Connections
* [components](/docs/api/storefront/2025-01/connections/ProductVariantComponentConnection): ProductVariantComponentConnection!
* [groupedBy](/docs/api/storefront/2025-01/connections/ProductVariantConnection): ProductVariantConnection!
* [quantityPriceBreaks](/docs/api/storefront/2025-01/connections/QuantityPriceBreakConnection): QuantityPriceBreakConnection!
* [sellingPlanAllocations](/docs/api/storefront/2025-01/connections/SellingPlanAllocationConnection): SellingPlanAllocationConnection!
* [storeAvailability](/docs/api/storefront/2025-01/connections/StoreAvailabilityConnection): StoreAvailabilityConnection!



## Related queries

## Related mutations

## Related Unions
* [Merchandise](/docs/api/storefront/2025-01/unions/Merchandise) The merchandise to be purchased at checkout.
* [MetafieldParentResource](/docs/api/storefront/2025-01/unions/MetafieldParentResource) A resource that the metafield belongs to.
* [MetafieldReference](/docs/api/storefront/2025-01/unions/MetafieldReference) Returns the resource which is being referred to by a metafield.


## Examples