26 June 2026
HTTP API
Announcement
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:

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:

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, and SetProjectSettingsProductCatalogModel.
  • [GraphQL API] Added the VariantUpdateAction input 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, and unpublish.
  • [GraphQL API] Added the VersionControl enum with values On and Off.
  • [GraphQL API] Added the ProductCatalogModel enum with values Classic and Modular.
  • [GraphQL API] Added the variant and variants query fields.
  • [GraphQL API] Added the variantProjection and variantProjections query fields (also available under inStore).
  • [GraphQL API] Added the productProjectionVariantAttributes query field (also available under inStore).
  • [GraphQL API] Added the createVariant, updateVariant, deleteVariant, and bulkUpdateVariants mutation fields.
  • [GraphQL API] Added the setProductCatalogModel field to the ProjectSettingsUpdateAction type.
  • [GraphQL API] Added the setDefaultVariant field to the ProductUpdateAction type.
  • [GraphQL API] Added the defaultVariantRef and defaultVariant fields to the ProductData type.
  • [GraphQL API] Added the productCatalogModel field to the ProjectProjection type.
  • [GraphQL API] Added the following message types:
    • VariantCreated
    • VariantDeleted
    • VariantPublished
    • VariantUnpublished
    • VariantStagedChangesRemoved
    • VariantImagesSet
    • VariantImageAdded
    • VariantSkuSet
    • VariantKeySet

The following changes were introduced for the Import API: