26 June 2026
Product catalogImport
Modular Catalog is now available in public beta.
Modular Catalog introduces Variants as first-class resources, decoupled from their parent Product, allowing you to use the Variant APIs to independently model, manage, and retrieve Variants. Using the Modular Catalog, Product Variants can now be modeled in two ways:
- Classic model: Product Variants are embedded within the Product with a 100-variant limit.
- Modular model: introduces Variants as first-class resources, allowing you to model, manage, and retrieve Variants independently from their parent Product. This model:
- Removes the 100-variant limit to enable catalogs with up to 10,000 Variants per Product.
- Provides granular control, allowing you to publish or unpublish specific Variants instantly without affecting the entire Product.
- Optimizes performance by retrieving Variant-level data directly, simplifying storefront integrations and reducing large Product payloads.
Previously, only the
Classic model was available. Now, you can use the Modular model, which is designed to improve scalability, flexibility, and integration simplicity for complex Product catalogs. To use the Modular model, you must set the productCatalogModel to Modular in your Project. Adopting the new Modular model in existing integrations may require changes to systems that rely on the current embedded Variant structure, therefore, we recommend creating a new Project to use this feature.For more information about this feature, see the following resources:
- Variants API
- Variant Projections API
- Variant Attributes API
- Model and sell products with Modular Catalog
Additionally, the Import API now supports importing Variants for Projects with
productCatalogModel set to Modular, to more efficiently import Variant data.The following changes were introduced for the HTTP API:
- Added new endpoints:
- Variants: query, create, update, and delete Variants by
idorkey, plus bulk updates. - Variant Projections: query and retrieve read-only Variant data optimized for storefront rendering.
- Variant Attributes: retrieve requested variant-level Attributes and lightweight availability for all Variants of a Product.
- Store-scoped endpoints for Variant Projections and Variant Attributes.
- Variants: query, create, update, and delete Variants by
- Added
productCatalogModelto Project and ProjectSetProductCatalogModelAction. - Added
defaultVariantto ProductData for Projects using theModularcatalog model. - Updated ProductData and ProductProjection behavior for
Modularprojects:masterVariantis omitted.variantsis empty.- Variant data is retrieved through Variants and Variant Projections.
- Added ProductSetDefaultVariantAction.
- Added Variant update actions:
- VariantSetSkuAction
- VariantSetKeyAction
- VariantSetImagesAction
- VariantAddExternalImageAction
- VariantRemoveImageAction
- VariantSetAssetsAction
- VariantAddAssetAction
- VariantRemoveAssetAction
- VariantSetAttributesAction
- VariantSetAttributeAction
- VariantRemoveStagedChangesAction
- VariantPublishAction
- VariantUnpublishAction
- VariantSetAssetKeyAction
- VariantChangeAssetOrderAction
- VariantChangeAssetNameAction
- VariantSetAssetDescriptionAction
- VariantSetAssetTagsAction
- VariantSetAssetSourcesAction
- VariantSetAssetCustomTypeAction
- VariantSetAssetCustomFieldAction
- Added Variant Message types:
The following changes were introduced for the GraphQL API:
- [GraphQL API] Added the following types:
Variant,VariantData,VariantDraft,VariantDeletionResult,BulkUpdateVariantsInput,BulkUpdateVariantsItemInput,VariantBulkAction,BulkUpdateVariantsResponse,BulkUpdateVariantsItemResult,BulkUpdateVariantsResource,BulkUpdateVariantsItemError,VariantProjection,VariantAttributeSimpleAvailability,VariantAttributeChannelAvailability,VariantAttributeAvailability,VariantAttributeDefinition,VariantAttributeVariant,ProductProjectionVariantAttributes, andSetProjectSettingsProductCatalogModel. - [GraphQL API] Added the
VariantUpdateActioninput type with the following actions:setSku,setKey,setImages,setAssets,setAttributes,setAttribute,addExternalImage,removeImage,addAsset,removeAsset,setAssetKey,changeAssetOrder,changeAssetName,setAssetDescription,setAssetTags,setAssetSources,setAssetCustomType,setAssetCustomField,removeStagedChanges,publish, andunpublish. - [GraphQL API] Added the
VersionControlenum with valuesOnandOff. - [GraphQL API] Added the
ProductCatalogModelenum with valuesClassicandModular. - [GraphQL API] Added the
variantandvariantsquery fields. - [GraphQL API] Added the
variantProjectionandvariantProjectionsquery fields (also available underinStore). - [GraphQL API] Added the
productProjectionVariantAttributesquery field (also available underinStore). - [GraphQL API] Added the
createVariant,updateVariant,deleteVariant, andbulkUpdateVariantsmutation fields. - [GraphQL API] Added the
setProductCatalogModelfield to theProjectSettingsUpdateActiontype. - [GraphQL API] Added the
setDefaultVariantfield to theProductUpdateActiontype. - [GraphQL API] Added the
defaultVariantRefanddefaultVariantfields to theProductDatatype. - [GraphQL API] Added the
productCatalogModelfield to theProjectProjectiontype. - [GraphQL API] Added the following message types:
VariantCreatedVariantDeletedVariantPublishedVariantUnpublishedVariantStagedChangesRemovedVariantImagesSetVariantImageAddedVariantSkuSetVariantKeySet
The following changes were introduced for the Import API:
- [Import API] Added Import Variants endpoint.
- [Import API] Added VariantImportRequest to support Variant import requests.
- [Import API] Added
variantto ImportResourceType and as the request discriminator for Variant import requests. - [Import API] Added an example payload for Variant import requests in Import Requests.