---
title: "Shopify variant options"
description: How Enad turns Enad products and variants into Shopify product options.
sidebar:
  label: Variant options
---

This page explains how Enad prepares [products](/catalog/products) and their variants for Shopify, and what the outcome is for the common setups.

## Option limits

Shopify allows at most three product options per product. Enad keeps the first three and logs any it skips.

## Simple products

Each variant attribute becomes an option. The option name is the attribute template key with its first letter capitalized, so `color` becomes `Color`, and the option value is the attribute display value.

## Variant groups

Each variant group becomes one Shopify product with a single option named by **Color option name**. Its value is the variant group name.

## Variant option sources

When **Variant option sources** is set, it replaces the default behavior. Each entry pairs a Shopify option name with a source:

- `variant_name` uses the variant's name as the option value.
- An attribute template key, such as `size`, uses that attribute's display value.

Enad calculates each variant's option values by reading the sources in the configured order:

- The `variant_name` source resolves to the variant's name, and the variant's creation time becomes the value's creation time.
- An attribute template source resolves to the display value of that attribute on the variant. The attribute is read from the variant first, then the variant group, then the product, so a variant's own value wins when the same template key exists on several layers. The attribute value's creation time becomes the value's creation time.

A source becomes a Shopify option when at least one variant of the product or variant group has a value for it, and only the first three such sources are used. Each option's value list is built from every variant's value for that source, duplicates are removed, and the list is sorted by the configured sort order. Option names and attribute keys must be unique across the list.

## Option value order

With the default `created_at_asc` order, values keep the order in which their attribute values were created. `name_asc` and `name_desc` sort values by name and also reorder existing option values in Shopify and order the variants Enad writes:

- Numbers sort numerically, so `9` comes before `10`.
- Sizes sort in the order `XS, S, M, L, XL, XXL`, and `EXTRA` counts as an `X`.
- Remaining values sort alphabetically, case-insensitive.

## Example cases

### One variant

A product with a single variant becomes a Shopify product with no options and only one variant.

### Multiple variants

When the variants do not share a complete option set, Enad creates one `Title` option and each variant becomes a value in it. When two variants share a name, the variant number disambiguates them.

### A color option

Give the related variants a color attribute and Enad creates the color option with the attribute values as option values. If one variant misses the color attribute while the rest have it, Enad skips that variant and logs the reason. The variant syncs once it has a color value.

### Two options, for example color and material

Every variant needs both attributes. A variant with material but no color does not fill every option, so Enad skips it and syncs only the variants that do. When no variant fills every option, Enad falls back to the single `Title` option from the multiple-variant case.

## Related

- [Shopify](/integrations/shopify)
- [Attribute templates](/catalog/attributes)
