Discount Type Extension, SKU Settings Deprecation, Delivery Rate Inputs Added

2/21/2026, 12:01:20 AM

  1. The discountNodes and codeDiscountNodes queries now recognize an app value for the discount_type filter, giving developers access to app‑based discounts while the old codeDiscountNodes endpoint remains deprecated. 2. Both the codeDiscountNodes query and the deliveryPromiseSkuSetting field (and the deliveryPromiseSkuSettingUpsert mutation) are marked deprecated and will be removed in a future release, so apps should stop using them. 3. New InputObject types – DeliveryParticipantCreateInput, DeliveryParticipantUpdateInput, DeliveryRateDefinitionCreateInput, DeliveryRateDefinitionUpdateInput, DeliveryRateGroupCreateInput, DeliveryRateGroupUpdateInput, and DeliveryRateRangeConditionInput – are added for building and updating delivery rate groups, expanding shipping‑rate configuration options. 4. Several enum additions provide new options: CatalogUserErrorCode.CATALOG_CONTEXT_LOCKED, ColumnDataType.COLOR, STRING_IDENTITY, RATING, and a new ShopFeatureName.LEAD_CAPTURE. 5. The ShopFeatures type gains an eligibleForShopFeature(feature: ShopFeatureName) boolean field, allowing apps to query feature eligibility directly. 6. The CatalogCreateInput and PublicationCreateInput documentation were revised to clarify when to create publications versus price lists, though no schema change occurs. 7. Finally, ShopPlan.publicDisplayName now includes the new values “Agentic Enterprise”, adding clarity for billing‑plan identification.

Query Changes

🔄 Modified Queries (4)

codeDiscountNodes

Returns a list of code-based discounts.

~ Modified argument: query
deliveryPromiseSkuSetting

A SKU setting for a delivery promise.

⚠️ Deprecated: This query is no longer supported and will be removed in a future version.
discountNodes

Returns a list of discounts.

~ Modified argument: query
discountNodesCount

The total number of discounts for the shop. Limited to a maximum of 10000 by default.

~ Modified argument: query

Mutation Changes

🔄 Modified Mutations (3)

catalogCreate

Creates a Catalog that controls product availability and pricing for specific contexts like markets or B2B company locations.

Publications and Price Lists

  • Publication objects control which products are visible in a catalog. Publications are optional. When a publication isn't associated with a catalog, product availability is determined by the sales channel.
  • PriceList objects define custom pricing for products in a catalog.

You can optionally associate a publication and price list when creating the catalog, or add them later using separate mutations.

When to use Publications

Create a publication only if you need to:

  • Limit which products are visible in a specific context (e.g., show different products to different company locations or markets)
  • Publish a curated subset of your product catalog

Do NOT create a publication if:

  • You want product availability determined by the sales channel
  • You only need to customize pricing (use a price list without a publication)

Important: For company location catalogs that only require custom pricing, create the catalog with a price list but without a publication.

Learn more about managing catalog contexts and using catalogs for different markets.

deliveryPromiseSkuSettingUpsert

Creates or updates a delivery promise SKU setting that will be used when looking up delivery promises for the SKU.

⚠️ Deprecated: This mutation is no longer supported and will be removed in a future version.
publicationCreate

Creates a Publication that controls which Product and Collection customers can access through a Catalog.

When to create a publication

Publications are optional for catalogs. Only create a publication if you need to control which products are visible in a specific catalog context. When a publication isn't associated with a catalog, product availability is determined by the sales channel.

Create a publication if you need to:

  • Restrict product visibility to a subset of your inventory for a specific market or company location
  • Publish different product selections to different contexts

Do NOT create a publication if:

  • You want product availability determined by the sales channel
  • You only need custom pricing (use a price list on the catalog instead)

Configuration options

You can create an empty publication and add products later, or prepopulate it with all existing products. The autoPublish field determines whether the publication automatically adds newly created products.

Type Changes

➕ Added Types (8)

📥DeliveryParticipantCreateInput➕ AddedINPUT_OBJECT

The input fields for creating a participant on a rate group.

📥DeliveryParticipantUpdateInput➕ AddedINPUT_OBJECT

The input fields for updating a participant.

📥DeliveryRateDefinitionCreateInput➕ AddedINPUT_OBJECT

The input fields for creating a rate definition on a rate group.

📥DeliveryRateDefinitionUpdateInput➕ AddedINPUT_OBJECT

The input fields for updating a rate definition.

📥DeliveryRateGroupCreateInput➕ AddedINPUT_OBJECT

The input fields to create a rate group on a method definition. A rate group can contain either one participant, one rate definition (with or without a rate range condition), or many rate definitions (so long as they all have a rate range condition, and those rate range conditions all have the same subject and unit).

📥DeliveryRateGroupUpdateInput➕ AddedINPUT_OBJECT

The input fields to update a rate group. A rate group can contain either one participant, one rate definition (with or without a rate range condition), or many rate definitions (so long as they all have a rate range condition, and those rate range conditions all have the same subject and unit).
To migrate from a rate group with rate definition(s) to a rate group with a participant (or vice versa), the original rate definitions (or participant) must be deleted via rateDefinitionsToDelete (or participantsToDelete) in the same mutation.

📥DeliveryRateRangeConditionInput➕ AddedINPUT_OBJECT

The input fields for creating a rate range condition.

📋ShopFeatureName➕ AddedENUM

The name of a Shop app feature for a given shop.

Values: LEAD_CAPTURE

🔄 Modified Types (4)

🏗️CatalogUserErrorCode🔄 Modified
Enum value added: CATALOG_CONTEXT_LOCKED
🏗️ColumnDataType🔄 Modified
Enum value added: COLOR
Enum value added: STRING_IDENTITY
Enum value added: RATING
🏗️ShopFeatures🔄 Modified
Field added: eligibleForShopFeature

Whether the shop is eligible for the given shop app feature.

🏗️ShopPlan🔄 Modified
🔄 Field modified: publicDisplayName