Add giftCardProductSet mutation, GiftCardSettings, and new enums

5/22/2026, 12:01:04 AM

Shopify introduces a new mutation giftCardProductSet that allows merchants to create or update gift card products via a single API call, automatically setting giftCard=true and applying gift‑card defaults. The mutation accepts a dedicated input type GiftCardProductSetInput, supporting fields for product metadata, tags, files, metafields, variants (using GiftCardProductVariantSetInput) and key gift‑card specific settings like issuanceCurrency and crossCurrencyRedeemable. A GiftCardProductSettings object and a giftCardSettings field are added to the Product type, exposing whether the card can be redeemed in other currencies and the issuance currency. New error codes such as LOCAL_CURRENCY_GIFT_CARD_PRICE_MUST_BE_ZERO are added to bulk variant mutation error enums, and additional error codes are defined for the giftCardProductSet mutation. The PaymentMandateResource type gains a non‑null id field to link mandates to customer payment methods. Variant publication webhook topics (VARIANT_PUBLICATIONS_CREATE, VARIANT_PUBLICATIONS_DELETE) are added. Minor documentation update: DiscountCombinesWith tags field description is clarified.

Mutation Changes

➕ Added Mutations (1)

giftCardProductSet

Creates or updates a
gift card
product. This mutation is specifically designed for gift card products and automatically sets
the giftCard field to true, applies gift card variant defaults (non-taxable, no shipping
required, inventory untracked), and omits fields that aren't relevant to gift cards.

For list fields like
variants,
the mutation performs a full replacement: it creates new entries, updates existing ones, and
removes any entries not included in the input. For all other fields, only included fields
change and omitted fields remain unchanged.

You can run the mutation synchronously to receive the updated product immediately, or
asynchronously by setting
synchronous: false
to receive a
ProductSetOperation
object instead. Use the
productOperation
query to check the status and retrieve the product details when running asynchronously.

Note:
The
issuanceCurrency
and crossCurrencyRedeemable fields can only be set during product creation. They can't be changed after the product is created.

Type Changes

➕ Added Types (6)

📥GiftCardProductSetInput➕ AddedINPUT_OBJECT

The input fields for creating or updating a gift card product with the
giftCardProductSet
mutation.

For list fields like
variants,
the mutation creates new entries, updates existing ones, and deletes any entries not included
in the input. All other fields update only when explicitly provided, leaving omitted fields
unchanged.

🏗️GiftCardProductSetPayload➕ AddedOBJECT

Return type for giftCardProductSet mutation.

Fields: product, productSetOperation, userErrors
🏗️GiftCardProductSetUserError➕ AddedOBJECT

Defines errors for GiftCardProductSet mutation.

Fields: code, field, message
📋GiftCardProductSetUserErrorCode➕ AddedENUM

Possible error codes that can be returned by GiftCardProductSetUserError.

Values: ID_NOT_ALLOWED, MISSING_FIELD_REQUIRED, INPUT_MISMATCH, NOT_FOUND, METAFIELD_MISMATCH, GENERIC_ERROR, INVALID_METAFIELD, INVALID_VARIANT ... +28 more
🏗️GiftCardProductSettings➕ AddedOBJECT

The gift card configuration settings for a
Product,
including the
issuanceCurrency
and whether the gift card can be redeemed across currencies via
crossCurrencyRedeemable.
Configure these settings when creating a gift card product with the
giftCardProductSet
mutation.

Fields: crossCurrencyRedeemable, issuanceCurrency
📥GiftCardProductVariantSetInput➕ AddedINPUT_OBJECT

The input fields for specifying a gift card product variant to create or update with the
giftCardProductSet
mutation.

Include an
id
to update an existing variant, or omit it to create a new one. Gift card variant defaults are
applied automatically, meaning variants are set to non-taxable, don't require shipping, and their inventory is untracked.

🔄 Modified Types (6)

🏗️DiscountCombinesWith🔄 Modified
🔄 Field modified: productDiscountsWithTagsOnSameCartLine
🏗️PaymentMandateResource🔄 Modified
Field added: id

The unique ID of the payment mandate. Matches the corresponding CustomerPaymentMethod.id token, so partners can identify which payment method to use for a given mandate scope (e.g., SUBSCRIPTIONS).

🏗️Product🔄 Modified
Field added: giftCardSettings

The gift card settings for this product. Only available on gift card products.

🏗️ProductVariantsBulkCreateUserErrorCode🔄 Modified
Enum value added: LOCAL_CURRENCY_GIFT_CARD_PRICE_MUST_BE_ZERO
🏗️ProductVariantsBulkUpdateUserErrorCode🔄 Modified
Enum value added: LOCAL_CURRENCY_GIFT_CARD_PRICE_MUST_BE_ZERO
🏗️WebhookSubscriptionTopic🔄 Modified
Enum value added: VARIANT_PUBLICATIONS_CREATE
Enum value added: VARIANT_PUBLICATIONS_DELETE