New Event Subscriptions API and Metaobject/Inventory Enhancements

11/12/2026, 12:00:37 AM

The schema now includes the eventSubscriptionsSet mutation, allowing apps to bulk‑create or replace up to 25 event subscriptions in a single call. Subscriptions are defined with the new EventSubscriptionInput type, and the resulting payload (EventSubscriptionsSetPayload) exposes the configured subscriptions and any EventSubscriptionsSetUserError errors. The productOptionUpdate mutation got a documentation tweak: the optionValuesToAdd argument now explicitly states that values are appended in order and refers to productOptionsReorder for custom ordering. Several new fields enhance inventory visibility: startedAt on InventoryCount, the paginated inventoryCounts list on Location, and the IS_DEFAULT sort key for InventoryBinSortKeys. Metaobject schemas can now declare a thumbnail selector via the added displayThumbnailKey field on MetaobjectDefinition. Additionally, new sort keys (CREATED_AT) were added to CollectionConditionsSourceSortKeys and PriceListSortKeys, and the schemas are only available in the unstable API version.

Mutation Changes

βž• Added Mutations (1)

eventSubscriptionsSet

Creates or replaces event subscriptions of the authenticated app on the shop, matched by handle.

Each input is a subscription's complete configuration. When no subscription has the handle, one is
created. When one does, its whole configuration is replaced: a field left out of the input is removed
from the subscription. Event payloads use the API version of the request.

The subscriptions are set together: when any of them is invalid, none is set. Takes up to
25 subscriptions in one call.

πŸ”„ Modified Mutations (1)

productOptionUpdate

Updates an option
on a product,
such as size, color, or material. Each option includes a name, position, and a list of values. The combination
of a product option and value creates a product variant.

Use the productOptionUpdate mutation for the following use cases:

  • Update product choices: Modify an existing option, like "Size" (Small, Medium, Large) or
    "Color" (Red, Blue, Green), so customers can select their preferred variant.
  • Enable personalization features: Update an option (for example, "Engraving text") to let customers customize their purchase.
  • Offer seasonal or limited edition products: Update a value
    (for example, "Holiday red") on an existing option to support limited-time or seasonal variants.
  • Integrate with apps that manage product configuration: Allow third-party apps to update options, like
    "Bundle size", when customers select or customize
    product bundles.
  • Link options to metafields: Associate a product option with a custom
    metafield, like "Fabric code", for
    richer integrations with other systems or apps.

Note:
The productOptionUpdate mutation enforces strict data integrity for product options and variants.
All option positions must be sequential, and every option should be used by at least one variant.

After you update a product option, you can further manage a product's configuration using related mutations:

Learn more about the product model
and adding product data.

~ Modified argument: optionValuesToAdd

Type Changes

βž• Added Types (6)

πŸ—οΈEventSubscriptionβž• AddedOBJECT

An event subscription that the app set on the shop.

Fields: actions, apiVersion, handle, query, queryFilter ... +3 more
πŸ“‹EventSubscriptionActionβž• AddedENUM

The actions on a resource that an event subscription delivers.

Values: CREATE, UPDATE, DELETE
πŸ“₯EventSubscriptionInputβž• AddedINPUT_OBJECT

The input fields for the complete configuration of an event subscription.

πŸ—οΈEventSubscriptionsSetPayloadβž• AddedOBJECT

Return type for eventSubscriptionsSet mutation.

Fields: eventSubscriptions, userErrors
πŸ—οΈEventSubscriptionsSetUserErrorβž• AddedOBJECT

An error that occurs during the execution of EventSubscriptionsSet.

Fields: code, elementIndex, field, message
πŸ“‹EventSubscriptionsSetUserErrorCodeβž• AddedENUM

Possible error codes that can be returned by EventSubscriptionsSetUserError.

Values: INVALID_SUBSCRIPTION, DUPLICATE_HANDLE, TOO_MANY_SUBSCRIPTIONS

πŸ”„ Modified Types (6)

πŸ—οΈCollectionConditionsSourceSortKeysπŸ”„ Modified
βž• Enum value added: CREATED_AT
πŸ—οΈInventoryBinSortKeysπŸ”„ Modified
βž• Enum value added: IS_DEFAULT
πŸ—οΈInventoryCountπŸ”„ Modified
βž• Field added: startedAt

The date and time counting started, which is when the count's earliest recorded observation was made.
Returns null when the count has no observations.

πŸ—οΈLocationπŸ”„ Modified
βž• Field added: inventoryCounts

A paginated list of the inventory counts at this location.

Note:
This field is available only in the unstable API version.

πŸ—οΈMetaobjectDefinitionπŸ”„ Modified
βž• Field added: displayThumbnailKey

The key of the field that each object uses as its thumbnail. When null, a thumbnail is selected automatically from the object's eligible fields. When set, only that field is used, even if its value is empty. A list field uses its first item.

πŸ—οΈPriceListSortKeysπŸ”„ Modified
βž• Enum value added: CREATED_AT