decode Encoded Variantutility
Decodes an encoded option value string into an array of option value combinations.
- Anchor to encodedVariantFieldencodedVariantFieldstringrequired
Encoded option value string from the Storefront API, e.g. product.encodedVariantExistence or product.encodedVariantAvailability
Decoded option value combinations
DecodedOptionValues
DecodeEncodedVariantGeneratedType
For an encoded option value string, decode into option value combinations. Entries represent a valid combination formatted as an array of option value positions.
- encodedVariantField
Encoded option value string from the Storefront API, e.g. [product.encodedVariantExistence](/docs/api/storefront/2025-04/objects/Product#field-encodedvariantexistence) or [product.encodedVariantAvailability](/docs/api/storefront/2025-04/objects/Product#field-encodedvariantavailability)
string
Decoded option value combinations
DecodedOptionValues
export function decodeEncodedVariant(
encodedVariantField: EncodedVariantField,
): DecodedOptionValues {
if (!encodedVariantField) return [];
if (encodedVariantField.startsWith('v1_')) {
return v1Decoder(stripVersion(encodedVariantField));
}
throw new Error('Unsupported option value encoding');
}
DecodedOptionValues
number[][]
Example code
JavaScript
examples
Example code
description
Decode an encoded option value string
JavaScript
import {decodeEncodedVariant} from '@shopify/hydrogen'; // product.options = [ // { // name: 'Color', // optionValues: [ // {name: 'Red'}, // {name: 'Blue'}, // {name: 'Green'}, // ] // }, // { // name: 'Size', // optionValues: [ // {name: 'S'}, // {name: 'M'}, // {name: 'L'}, // ] // } // ] const encodedVariantAvailability = 'v1_0:0-2,1:2,'; const decodedVariantAvailability = decodeEncodedVariant( encodedVariantAvailability, ); // decodedVariantAvailability // { // [0,0], // Red, S // [0,1], // Red, M // [0,2], // Red, L // [1,2] // Blue, L // }