diff --git a/ShopifyNet/Generated.cs b/ShopifyNet/Generated.cs index a24af30..189c59d 100644 --- a/ShopifyNet/Generated.cs +++ b/ShopifyNet/Generated.cs @@ -319,6 +319,12 @@ public class AbandonedCheckoutLineItem : GraphQLObject + ///The parent relationship for this line item. + /// + [Description("The parent relationship for this line item.")] + public AbandonedCheckoutLineItemParentRelationship? parentRelationship { get; set; } + /// ///Product for this line item. ///NULL for custom line items and products that were deleted after checkout began. @@ -450,6 +456,20 @@ public class AbandonedCheckoutLineItemEdge : GraphQLObject + ///The line relationship between two line items in an abandoned checkout. + /// + [Description("The line relationship between two line items in an abandoned checkout.")] + public class AbandonedCheckoutLineItemParentRelationship : GraphQLObject + { + /// + ///The parent line item of the current line item. + /// + [Description("The parent line item of the current line item.")] + [NonNull] + public AbandonedCheckoutLineItem? parent { get; set; } + } + /// ///The set of valid sort keys for the AbandonedCheckout query. /// @@ -3735,7 +3755,7 @@ public class AppleApplication : GraphQLObject, IMobilePlatform ///An article in the blogging system. /// [Description("An article in the blogging system.")] - public class Article : GraphQLObject
, IHasEvents, IHasMetafieldDefinitions, IHasMetafields, IHasPublishedTranslations, INavigable, INode, IMetafieldReferencer + public class Article : GraphQLObject
, IHasEvents, IHasMetafieldDefinitions, IHasMetafields, IHasPublishedTranslations, INavigable, INode, IMetafieldReference, IMetafieldReferencer { /// ///The name of the author of the article. @@ -5549,6 +5569,11 @@ public enum BulkMutationErrorCode /// [Description("There was a problem reading the JSONL file. This error might be intermittent, so you can try performing the same query again.")] INTERNAL_FILE_SERVER_ERROR, + /// + ///Bulk operations limit reached. Please try again later. + /// + [Description("Bulk operations limit reached. Please try again later.")] + LIMIT_REACHED, } public static class BulkMutationErrorCodeStringValues @@ -5558,6 +5583,7 @@ public static class BulkMutationErrorCodeStringValues public const string INVALID_STAGED_UPLOAD_FILE = @"INVALID_STAGED_UPLOAD_FILE"; public const string NO_SUCH_FILE = @"NO_SUCH_FILE"; public const string INTERNAL_FILE_SERVER_ERROR = @"INTERNAL_FILE_SERVER_ERROR"; + public const string LIMIT_REACHED = @"LIMIT_REACHED"; } /// @@ -5905,12 +5931,18 @@ public enum BulkOperationUserErrorCode /// [Description("The input value is invalid.")] INVALID, + /// + ///Bulk operations limit reached. Please try again later. + /// + [Description("Bulk operations limit reached. Please try again later.")] + LIMIT_REACHED, } public static class BulkOperationUserErrorCodeStringValues { public const string OPERATION_IN_PROGRESS = @"OPERATION_IN_PROGRESS"; public const string INVALID = @"INVALID"; + public const string LIMIT_REACHED = @"LIMIT_REACHED"; } /// @@ -8237,6 +8269,16 @@ public enum CartTransformCreateUserErrorCode /// [Description("Could not create or update metafields.")] INVALID_METAFIELDS, + /// + ///Only one of function_id or function_handle can be provided, not both. + /// + [Description("Only one of function_id or function_handle can be provided, not both.")] + MULTIPLE_FUNCTION_IDENTIFIERS, + /// + ///Either function_id or function_handle must be provided. + /// + [Description("Either function_id or function_handle must be provided.")] + MISSING_FUNCTION_IDENTIFIER, } public static class CartTransformCreateUserErrorCodeStringValues @@ -8246,6 +8288,8 @@ public static class CartTransformCreateUserErrorCodeStringValues public const string FUNCTION_ALREADY_REGISTERED = @"FUNCTION_ALREADY_REGISTERED"; public const string FUNCTION_DOES_NOT_IMPLEMENT = @"FUNCTION_DOES_NOT_IMPLEMENT"; public const string INVALID_METAFIELDS = @"INVALID_METAFIELDS"; + public const string MULTIPLE_FUNCTION_IDENTIFIERS = @"MULTIPLE_FUNCTION_IDENTIFIERS"; + public const string MISSING_FUNCTION_IDENTIFIER = @"MISSING_FUNCTION_IDENTIFIER"; } /// @@ -9465,20 +9509,9 @@ public class Channel : GraphQLObject, INode public ProductConnection? products { get; set; } /// - ///Retrieves the total count of products that are currently published to a specific sales channel. This provides a quick way to understand channel inventory without fetching the full product list. - /// - ///For example, when building channel management dashboards, you can display how many products are available in each channel like "150 products in Online Store" or "75 products in Facebook Shop." - /// - ///Use `ChannelProductsCount` to: - ///- Display inventory summaries in channel management interfaces - ///- Monitor product distribution across sales channels - ///- Validate channel setup and product availability - /// - ///The count reflects only published products and updates as merchants add or remove products from channels. - /// - ///Learn more about [sales channels](https://shopify.dev/docs/api/admin-graphql/latest/objects/Channel). Limited to a maximum of 10000 by default. + ///Retrieves the total count of [`products`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Product) published to a specific sales channel. Limited to a maximum of 10000 by default. /// - [Description("Retrieves the total count of products that are currently published to a specific sales channel. This provides a quick way to understand channel inventory without fetching the full product list.\n\nFor example, when building channel management dashboards, you can display how many products are available in each channel like \"150 products in Online Store\" or \"75 products in Facebook Shop.\"\n\nUse `ChannelProductsCount` to:\n- Display inventory summaries in channel management interfaces\n- Monitor product distribution across sales channels\n- Validate channel setup and product availability\n\nThe count reflects only published products and updates as merchants add or remove products from channels.\n\nLearn more about [sales channels](https://shopify.dev/docs/api/admin-graphql/latest/objects/Channel). Limited to a maximum of 10000 by default.")] + [Description("Retrieves the total count of [`products`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Product) published to a specific sales channel. Limited to a maximum of 10000 by default.")] public Count? productsCount { get; set; } /// @@ -9629,12 +9662,22 @@ public class ChannelInformation : GraphQLObject, INode } /// - ///The settings of checkout visual customizations. + ///Creates a unified visual identity for your checkout that keeps customers engaged and reinforces your brand throughout the purchase process. This comprehensive branding system lets you control every visual aspect of checkout, from colors and fonts to layouts and imagery, so your checkout feels like a natural extension of your store. + /// + ///For example, a luxury fashion retailer can configure their checkout with custom color palettes, premium typography, rounded corners for a softer feel, and branded imagery that matches their main website aesthetic. + /// + ///Use the `Branding` object to: + ///- Configure comprehensive checkout visual identity + ///- Coordinate color schemes across all checkout elements + ///- Apply consistent typography and spacing standards + ///- Manage background imagery and layout customizations + ///- Control visibility of various checkout components /// - ///To learn more about updating checkout branding settings, refer to the - ///[checkoutBrandingUpsert](https://shopify.dev/api/admin-graphql/unstable/mutations/checkoutBrandingUpsert) mutation. + ///The branding configuration includes design system foundations like color roles, typography scales, and spacing units, plus specific customizations for sections, dividers, and interactive elements. This allows merchants to create cohesive checkout experiences that reinforce their brand identity while maintaining usability standards. + /// + ///Different color schemes can be defined for various contexts, ensuring optimal contrast and accessibility across different checkout states and customer preferences. /// - [Description("The settings of checkout visual customizations.\n\nTo learn more about updating checkout branding settings, refer to the\n[checkoutBrandingUpsert](https://shopify.dev/api/admin-graphql/unstable/mutations/checkoutBrandingUpsert) mutation.")] + [Description("Creates a unified visual identity for your checkout that keeps customers engaged and reinforces your brand throughout the purchase process. This comprehensive branding system lets you control every visual aspect of checkout, from colors and fonts to layouts and imagery, so your checkout feels like a natural extension of your store.\n\nFor example, a luxury fashion retailer can configure their checkout with custom color palettes, premium typography, rounded corners for a softer feel, and branded imagery that matches their main website aesthetic.\n\nUse the `Branding` object to:\n- Configure comprehensive checkout visual identity\n- Coordinate color schemes across all checkout elements\n- Apply consistent typography and spacing standards\n- Manage background imagery and layout customizations\n- Control visibility of various checkout components\n\nThe branding configuration includes design system foundations like color roles, typography scales, and spacing units, plus specific customizations for sections, dividers, and interactive elements. This allows merchants to create cohesive checkout experiences that reinforce their brand identity while maintaining usability standards.\n\nDifferent color schemes can be defined for various contexts, ensuring optimal contrast and accessibility across different checkout states and customer preferences.")] public class CheckoutBranding : GraphQLObject { /// @@ -9851,9 +9894,18 @@ public class CheckoutBrandingButton : GraphQLObject } /// - ///Colors for buttons. + ///Defines the color palette specifically for button elements within checkout branding, including hover states. These color roles ensure buttons maintain proper contrast and visual hierarchy throughout the checkout experience. + /// + ///For example, a sports brand might configure bright accent colors for primary action buttons, with darker hover states and contrasting text colors that maintain accessibility standards. + /// + ///Use the `ButtonColorRoles` object to: + ///- Define button color schemes for different states + ///- Ensure proper contrast for accessibility compliance + ///- Coordinate button colors with overall brand palette + /// + ///Button color roles include background, border, text, icon, accent (for focused states), and decorative elements, plus specific hover state colors that provide clear interactive feedback to customers. /// - [Description("Colors for buttons.")] + [Description("Defines the color palette specifically for button elements within checkout branding, including hover states. These color roles ensure buttons maintain proper contrast and visual hierarchy throughout the checkout experience.\n\nFor example, a sports brand might configure bright accent colors for primary action buttons, with darker hover states and contrasting text colors that maintain accessibility standards.\n\nUse the `ButtonColorRoles` object to:\n- Define button color schemes for different states\n- Ensure proper contrast for accessibility compliance\n- Coordinate button colors with overall brand palette\n\nButton color roles include background, border, text, icon, accent (for focused states), and decorative elements, plus specific hover state colors that provide clear interactive feedback to customers.")] public class CheckoutBrandingButtonColorRoles : GraphQLObject { /// @@ -9900,9 +9952,15 @@ public class CheckoutBrandingButtonColorRoles : GraphQLObject - ///The customizations for the breadcrumbs that represent a buyer's journey to the checkout. + ///Controls the visibility settings for checkout breadcrumb navigation that shows customers their progress through the purchase journey. This simple customization allows merchants to show or hide the breadcrumb trail based on their checkout flow preferences. + /// + ///For example, a single-page checkout experience might hide breadcrumbs to create a more streamlined appearance, while multi-step checkouts can display them to help customers understand their progress. + /// + ///The visibility setting provides merchants flexibility in how they present checkout navigation to match their specific user experience strategy. + /// + ///Learn more about [checkout customization](https://shopify.dev/docs/api/admin-graphql/latest/objects/CheckoutBranding). /// - [Description("The customizations for the breadcrumbs that represent a buyer's journey to the checkout.")] + [Description("Controls the visibility settings for checkout breadcrumb navigation that shows customers their progress through the purchase journey. This simple customization allows merchants to show or hide the breadcrumb trail based on their checkout flow preferences.\n\nFor example, a single-page checkout experience might hide breadcrumbs to create a more streamlined appearance, while multi-step checkouts can display them to help customers understand their progress.\n\nThe visibility setting provides merchants flexibility in how they present checkout navigation to match their specific user experience strategy.\n\nLearn more about [checkout customization](https://shopify.dev/docs/api/admin-graphql/latest/objects/CheckoutBranding).")] public class CheckoutBrandingBuyerJourney : GraphQLObject { /// @@ -9914,9 +9972,13 @@ public class CheckoutBrandingBuyerJourney : GraphQLObject - ///The customizations that you can make to cart links at checkout. + ///Controls the visibility of cart links displayed during checkout. These links allow customers to return to their cart or continue shopping. + /// + ///For example, an electronics store might hide cart links during final checkout steps to reduce distractions, or show them prominently to encourage customers to add accessories before completing their purchase. + /// + ///The `CartLink` object provides visibility settings to control when and how these navigation elements appear based on the merchant's checkout flow strategy. /// - [Description("The customizations that you can make to cart links at checkout.")] + [Description("Controls the visibility of cart links displayed during checkout. These links allow customers to return to their cart or continue shopping.\n\nFor example, an electronics store might hide cart links during final checkout steps to reduce distractions, or show them prominently to encourage customers to add accessories before completing their purchase.\n\nThe `CartLink` object provides visibility settings to control when and how these navigation elements appear based on the merchant's checkout flow strategy.")] public class CheckoutBrandingCartLink : GraphQLObject { /// @@ -9958,9 +10020,13 @@ public static class CheckoutBrandingCartLinkContentTypeStringValues } /// - ///The checkboxes customizations. + ///Defines the visual styling for checkbox elements throughout the checkout interface, focusing on corner radius customization. This allows merchants to align checkbox appearance with their overall design aesthetic. + /// + ///For example, a modern minimalist brand might prefer sharp, square checkboxes while a friendly consumer brand could opt for rounded corners to create a softer, more approachable feel. + /// + ///The corner radius setting ensures checkboxes integrate seamlessly with the overall checkout design language and brand identity. /// - [Description("The checkboxes customizations.")] + [Description("Defines the visual styling for checkbox elements throughout the checkout interface, focusing on corner radius customization. This allows merchants to align checkbox appearance with their overall design aesthetic.\n\nFor example, a modern minimalist brand might prefer sharp, square checkboxes while a friendly consumer brand could opt for rounded corners to create a softer, more approachable feel.\n\nThe corner radius setting ensures checkboxes integrate seamlessly with the overall checkout design language and brand identity.")] public class CheckoutBrandingCheckbox : GraphQLObject { /// @@ -9972,9 +10038,11 @@ public class CheckoutBrandingCheckbox : GraphQLObject } /// - ///The choice list customizations. + ///Controls spacing customization for the grouped variant of choice list components in checkout forms. + /// + ///The `ChoiceList` object contains settings specifically for the 'group' variant styling through the [`ChoiceListGroup`](https://shopify.dev/docs/api/admin-graphql/latest/objects/CheckoutBrandingChoiceListGroup) field, which determines the spacing between choice options. /// - [Description("The choice list customizations.")] + [Description("Controls spacing customization for the grouped variant of choice list components in checkout forms.\n\nThe `ChoiceList` object contains settings specifically for the 'group' variant styling through the [`ChoiceListGroup`](https://shopify.dev/docs/api/admin-graphql/latest/objects/CheckoutBrandingChoiceListGroup) field, which determines the spacing between choice options.")] public class CheckoutBrandingChoiceList : GraphQLObject { /// @@ -9985,9 +10053,13 @@ public class CheckoutBrandingChoiceList : GraphQLObject - ///The settings that apply to the 'group' variant of ChoiceList. + ///Controls the spacing between options in the 'group' variant of [`ChoiceList`](https://shopify.dev/docs/api/admin-graphql/latest/objects/CheckoutBrandingChoiceList) components. + /// + ///This setting adjusts the vertical spacing between choice options to improve readability and visual organization. The spacing value helps create clear separation between options, making it easier for customers to scan and select from available choices. + /// + ///Learn more about [checkout customization](https://shopify.dev/docs/api/admin-graphql/latest/objects/CheckoutBranding). /// - [Description("The settings that apply to the 'group' variant of ChoiceList.")] + [Description("Controls the spacing between options in the 'group' variant of [`ChoiceList`](https://shopify.dev/docs/api/admin-graphql/latest/objects/CheckoutBrandingChoiceList) components.\n\nThis setting adjusts the vertical spacing between choice options to improve readability and visual organization. The spacing value helps create clear separation between options, making it easier for customers to scan and select from available choices.\n\nLearn more about [checkout customization](https://shopify.dev/docs/api/admin-graphql/latest/objects/CheckoutBranding).")] public class CheckoutBrandingChoiceListGroup : GraphQLObject { /// @@ -9999,9 +10071,19 @@ public class CheckoutBrandingChoiceListGroup : GraphQLObject - ///A set of colors for customizing the overall look and feel of the checkout. + ///Defines the global color roles for checkout branding. These semantic colors maintain consistency across all checkout elements and provide the foundation for the checkout's visual design system. + /// + ///Use global colors to: + ///- Set brand colors for primary actions and buttons + ///- Define accent colors for links and interactive elements + ///- Configure semantic colors for success, warning, and error states + ///- Apply decorative colors for visual highlights + /// + ///For example, a merchant might set their brand blue for primary buttons, green for success messages, amber for warnings, and red for critical errors, creating a consistent color language throughout checkout. + /// + ///Learn more about [checkout customization](https://shopify.dev/docs/api/admin-graphql/latest/objects/CheckoutBranding). /// - [Description("A set of colors for customizing the overall look and feel of the checkout.")] + [Description("Defines the global color roles for checkout branding. These semantic colors maintain consistency across all checkout elements and provide the foundation for the checkout's visual design system.\n\nUse global colors to:\n- Set brand colors for primary actions and buttons\n- Define accent colors for links and interactive elements\n- Configure semantic colors for success, warning, and error states\n- Apply decorative colors for visual highlights\n\nFor example, a merchant might set their brand blue for primary buttons, green for success messages, amber for warnings, and red for critical errors, creating a consistent color language throughout checkout.\n\nLearn more about [checkout customization](https://shopify.dev/docs/api/admin-graphql/latest/objects/CheckoutBranding).")] public class CheckoutBrandingColorGlobal : GraphQLObject { /// @@ -12935,7 +13017,70 @@ public class CollectionReorderProductsPayload : GraphQLObject [Description("The list of errors that occurred from executing the mutation.")] [NonNull] - public IEnumerable? userErrors { get; set; } + public IEnumerable? userErrors { get; set; } + } + + /// + ///Errors related to order customer removal. + /// + [Description("Errors related to order customer removal.")] + public class CollectionReorderProductsUserError : GraphQLObject, IDisplayableError + { + /// + ///The error code. + /// + [Description("The error code.")] + [EnumType(typeof(CollectionReorderProductsUserErrorCode))] + public string? code { get; set; } + + /// + ///The path to the input field that caused the error. + /// + [Description("The path to the input field that caused the error.")] + public IEnumerable? field { get; set; } + + /// + ///The error message. + /// + [Description("The error message.")] + [NonNull] + public string? message { get; set; } + } + + /// + ///Possible error codes that can be returned by `CollectionReorderProductsUserError`. + /// + [Description("Possible error codes that can be returned by `CollectionReorderProductsUserError`.")] + public enum CollectionReorderProductsUserErrorCode + { + /// + ///Products are currently being reordered. Please try again later. + /// + [Description("Products are currently being reordered. Please try again later.")] + TOO_MANY_ATTEMPTS_TO_REORDER_PRODUCTS, + /// + ///The collection was not found. Please check the collection ID and try again. + /// + [Description("The collection was not found. Please check the collection ID and try again.")] + COLLECTION_NOT_FOUND, + /// + ///The collection is not manually sorted. Can't reorder products unless collection is manually sorted. + /// + [Description("The collection is not manually sorted. Can't reorder products unless collection is manually sorted.")] + MANUALLY_SORTED_COLLECTION, + /// + ///The move is invalid. + /// + [Description("The move is invalid.")] + INVALID_MOVE, + } + + public static class CollectionReorderProductsUserErrorCodeStringValues + { + public const string TOO_MANY_ATTEMPTS_TO_REORDER_PRODUCTS = @"TOO_MANY_ATTEMPTS_TO_REORDER_PRODUCTS"; + public const string COLLECTION_NOT_FOUND = @"COLLECTION_NOT_FOUND"; + public const string MANUALLY_SORTED_COLLECTION = @"MANUALLY_SORTED_COLLECTION"; + public const string INVALID_MOVE = @"INVALID_MOVE"; } /// @@ -13464,6 +13609,186 @@ public class CollectionUpdatePayload : GraphQLObject public IEnumerable? userErrors { get; set; } } + /// + ///The data type of a column. + /// + [Description("The data type of a column.")] + public enum ColumnDataType + { + /// + ///Represents an unspecified data type. + /// + [Description("Represents an unspecified data type.")] + UNSPECIFIED, + /// + ///Represents a monetary value. + /// + [Description("Represents a monetary value.")] + MONEY, + /// + ///Represents a percentage value. + /// + [Description("Represents a percentage value.")] + PERCENT, + /// + ///Represents an integer value. + /// + [Description("Represents an integer value.")] + INTEGER, + /// + ///Represents a floating point value. + /// + [Description("Represents a floating point value.")] + FLOAT, + /// + ///Represents a decimal value. + /// + [Description("Represents a decimal value.")] + DECIMAL, + /// + ///Represents a string value. + /// + [Description("Represents a string value.")] + STRING, + /// + ///Represents a boolean value. + /// + [Description("Represents a boolean value.")] + BOOLEAN, + /// + ///Represents a timestamp value in seconds. + /// + [Description("Represents a timestamp value in seconds.")] + TIMESTAMP, + /// + ///Represents a minute-level timestamp value. + /// + [Description("Represents a minute-level timestamp value.")] + MINUTE_TIMESTAMP, + /// + ///Represents a hour-level timestamp value. + /// + [Description("Represents a hour-level timestamp value.")] + HOUR_TIMESTAMP, + /// + ///Represents a day-level timestamp value. + /// + [Description("Represents a day-level timestamp value.")] + DAY_TIMESTAMP, + /// + ///Represents a week-level timestamp value. + /// + [Description("Represents a week-level timestamp value.")] + WEEK_TIMESTAMP, + /// + ///Represents a month-level timestamp value. + /// + [Description("Represents a month-level timestamp value.")] + MONTH_TIMESTAMP, + /// + ///Represents a quarter-level timestamp value. + /// + [Description("Represents a quarter-level timestamp value.")] + QUARTER_TIMESTAMP, + /// + ///Represents a year-level timestamp value. + /// + [Description("Represents a year-level timestamp value.")] + YEAR_TIMESTAMP, + /// + ///Represents a day of week value. + /// + [Description("Represents a day of week value.")] + DAY_OF_WEEK, + /// + ///Represents an hour of day value. + /// + [Description("Represents an hour of day value.")] + HOUR_OF_DAY, + /// + ///Represents an identity value. + /// + [Description("Represents an identity value.")] + IDENTITY, + /// + ///Represents a month of year value. + /// + [Description("Represents a month of year value.")] + MONTH_OF_YEAR, + /// + ///Represents a week of year value. + /// + [Description("Represents a week of year value.")] + WEEK_OF_YEAR, + /// + ///Represents a second-level timestamp value. + /// + [Description("Represents a second-level timestamp value.")] + SECOND_TIMESTAMP, + /// + ///Represents an array of values. + /// + [Description("Represents an array of values.")] + ARRAY, + /// + ///Represents a duration in milliseconds. + /// + [Description("Represents a duration in milliseconds.")] + MILLISECOND_DURATION, + /// + ///Represents a duration in seconds. + /// + [Description("Represents a duration in seconds.")] + SECOND_DURATION, + /// + ///Represents a duration in minutes. + /// + [Description("Represents a duration in minutes.")] + MINUTE_DURATION, + /// + ///Represents a duration in hours. + /// + [Description("Represents a duration in hours.")] + HOUR_DURATION, + /// + ///Represents a duration in days. + /// + [Description("Represents a duration in days.")] + DAY_DURATION, + } + + public static class ColumnDataTypeStringValues + { + public const string UNSPECIFIED = @"UNSPECIFIED"; + public const string MONEY = @"MONEY"; + public const string PERCENT = @"PERCENT"; + public const string INTEGER = @"INTEGER"; + public const string FLOAT = @"FLOAT"; + public const string DECIMAL = @"DECIMAL"; + public const string STRING = @"STRING"; + public const string BOOLEAN = @"BOOLEAN"; + public const string TIMESTAMP = @"TIMESTAMP"; + public const string MINUTE_TIMESTAMP = @"MINUTE_TIMESTAMP"; + public const string HOUR_TIMESTAMP = @"HOUR_TIMESTAMP"; + public const string DAY_TIMESTAMP = @"DAY_TIMESTAMP"; + public const string WEEK_TIMESTAMP = @"WEEK_TIMESTAMP"; + public const string MONTH_TIMESTAMP = @"MONTH_TIMESTAMP"; + public const string QUARTER_TIMESTAMP = @"QUARTER_TIMESTAMP"; + public const string YEAR_TIMESTAMP = @"YEAR_TIMESTAMP"; + public const string DAY_OF_WEEK = @"DAY_OF_WEEK"; + public const string HOUR_OF_DAY = @"HOUR_OF_DAY"; + public const string IDENTITY = @"IDENTITY"; + public const string MONTH_OF_YEAR = @"MONTH_OF_YEAR"; + public const string WEEK_OF_YEAR = @"WEEK_OF_YEAR"; + public const string SECOND_TIMESTAMP = @"SECOND_TIMESTAMP"; + public const string ARRAY = @"ARRAY"; + public const string MILLISECOND_DURATION = @"MILLISECOND_DURATION"; + public const string SECOND_DURATION = @"SECOND_DURATION"; + public const string MINUTE_DURATION = @"MINUTE_DURATION"; + public const string HOUR_DURATION = @"HOUR_DURATION"; + public const string DAY_DURATION = @"DAY_DURATION"; + } + /// ///A combined listing of products. /// @@ -15774,7 +16099,7 @@ public class CompanyEdge : GraphQLObject, IEdge ///A location or branch of a [company that's a customer](https://shopify.dev/api/admin-graphql/latest/objects/company) of the shop. Configuration of B2B relationship, for example prices lists and checkout settings, may be done for a location. /// [Description("A location or branch of a [company that's a customer](https://shopify.dev/api/admin-graphql/latest/objects/company) of the shop. Configuration of B2B relationship, for example prices lists and checkout settings, may be done for a location.")] - public class CompanyLocation : GraphQLObject, ICommentEventSubject, IHasEvents, IHasMetafieldDefinitions, IHasMetafields, INavigable, INode, IMetafieldReferencer + public class CompanyLocation : GraphQLObject, ICommentEventSubject, IHasEvents, IHasMetafieldDefinitions, IHasMetafields, IHasStoreCreditAccounts, INavigable, INode, IMetafieldReferencer { /// ///The address used as billing address for the location. @@ -15969,6 +16294,14 @@ public class CompanyLocation : GraphQLObject, ICommentEventSubj [NonNull] public CompanyLocationStaffMemberAssignmentConnection? staffMemberAssignments { get; set; } + /// + ///Returns a list of store credit accounts that belong to the owner resource. + ///A store credit account owner can hold multiple accounts each with a different currency. + /// + [Description("Returns a list of store credit accounts that belong to the owner resource.\nA store credit account owner can hold multiple accounts each with a different currency.")] + [NonNull] + public StoreCreditAccountConnection? storeCreditAccounts { get; set; } + /// ///The list of tax exemptions applied to the location. /// @@ -21899,6 +22232,13 @@ public class CustomerPaymentMethod : GraphQLObject, INode [Description("The instrument for this payment method.")] public ICustomerPaymentInstrument? instrument { get; set; } + /// + ///The mandates associated with the payment method. + /// + [Description("The mandates associated with the payment method.")] + [NonNull] + public PaymentMandateResourceConnection? mandates { get; set; } + /// ///The time that the payment method was revoked. /// @@ -25306,6 +25646,16 @@ public enum DeliveryCustomizationErrorCode /// [Description("Could not create or update metafields.")] INVALID_METAFIELDS, + /// + ///Either function_id or function_handle must be provided. + /// + [Description("Either function_id or function_handle must be provided.")] + MISSING_FUNCTION_IDENTIFIER, + /// + ///Only one of function_id or function_handle can be provided, not both. + /// + [Description("Only one of function_id or function_handle can be provided, not both.")] + MULTIPLE_FUNCTION_IDENTIFIERS, } public static class DeliveryCustomizationErrorCodeStringValues @@ -25322,6 +25672,8 @@ public static class DeliveryCustomizationErrorCodeStringValues public const string FUNCTION_ID_CANNOT_BE_CHANGED = @"FUNCTION_ID_CANNOT_BE_CHANGED"; public const string REQUIRED_INPUT_FIELD = @"REQUIRED_INPUT_FIELD"; public const string INVALID_METAFIELDS = @"INVALID_METAFIELDS"; + public const string MISSING_FUNCTION_IDENTIFIER = @"MISSING_FUNCTION_IDENTIFIER"; + public const string MULTIPLE_FUNCTION_IDENTIFIERS = @"MULTIPLE_FUNCTION_IDENTIFIERS"; } /// @@ -26026,7 +26378,6 @@ public class DeliveryProfile : GraphQLObject, INode ///Whether this shop has enabled legacy compatibility mode for delivery profiles. /// [Description("Whether this shop has enabled legacy compatibility mode for delivery profiles.")] - [Obsolete("Legacy mode profiles are no longer supported.")] [NonNull] public bool? legacyMode { get; set; } @@ -26100,6 +26451,13 @@ public class DeliveryProfile : GraphQLObject, INode [NonNull] public LocationConnection? unassignedLocationsPaginated { get; set; } + /// + ///The version of the delivery profile. + /// + [Description("The version of the delivery profile.")] + [NonNull] + public int? version { get; set; } + /// ///The number of countries with active rates to deliver to. /// @@ -26479,6 +26837,7 @@ public interface IDeliveryPromiseParticipantOwner : IGraphQLObject ///The featured image for the variant. /// [Description("The featured image for the variant.")] + [Obsolete("Use `media` instead.")] public Image? image { get; set; } /// @@ -26970,7 +27329,6 @@ public class DeliverySetting : GraphQLObject ///Whether the shop is blocked from converting to full multi-location delivery profiles mode. If the shop is blocked, then the blocking reasons are also returned. /// [Description("Whether the shop is blocked from converting to full multi-location delivery profiles mode. If the shop is blocked, then the blocking reasons are also returned.")] - [Obsolete("Legacy mode profiles are no longer supported.")] [NonNull] public DeliveryLegacyModeBlocked? legacyModeBlocked { get; set; } @@ -26978,7 +27336,6 @@ public class DeliverySetting : GraphQLObject ///Enables legacy compatability mode for the multi-location delivery profiles feature. /// [Description("Enables legacy compatability mode for the multi-location delivery profiles feature.")] - [Obsolete("Legacy mode profiles are no longer supported.")] [NonNull] public bool? legacyModeProfiles { get; set; } } @@ -27170,6 +27527,13 @@ public interface IDiscount : IGraphQLObject [NonNull] public DiscountCombinesWith? combinesWith { get; set; } + /// + ///The context defining which buyers can use the discount. + /// + [Description("The context defining which buyers can use the discount.")] + [NonNull] + public IDiscountContext? context { get; set; } + /// ///The date and time when the discount was created. /// @@ -27592,6 +27956,13 @@ public interface IDiscountAutomatic : IGraphQLObject [NonNull] public DiscountCombinesWith? combinesWith { get; set; } + /// + ///The context defining which buyers can use the discount. + /// + [Description("The context defining which buyers can use the discount.")] + [NonNull] + public IDiscountContext? context { get; set; } + /// ///The date and time when the discount was created. /// @@ -27750,6 +28121,13 @@ public class DiscountAutomaticApp : GraphQLObject, IDiscou [NonNull] public DiscountCombinesWith? combinesWith { get; set; } + /// + ///The context defining which buyers can use the discount. + /// + [Description("The context defining which buyers can use the discount.")] + [NonNull] + public IDiscountContext? context { get; set; } + /// ///The date and time when the discount was created. /// @@ -27925,6 +28303,13 @@ public class DiscountAutomaticBasic : GraphQLObject, IDi [NonNull] public DiscountCombinesWith? combinesWith { get; set; } + /// + ///The context defining which buyers can use the discount. + /// + [Description("The context defining which buyers can use the discount.")] + [NonNull] + public IDiscountContext? context { get; set; } + /// ///The date and time when the discount was created. /// @@ -28143,6 +28528,13 @@ public class DiscountAutomaticBxgy : GraphQLObject, IHasE [NonNull] public DiscountCombinesWith? combinesWith { get; set; } + /// + ///The context defining which buyers can use the discount. + /// + [Description("The context defining which buyers can use the discount.")] + [NonNull] + public IDiscountContext? context { get; set; } + /// ///The date and time when the discount was created. /// @@ -28453,6 +28845,13 @@ public class DiscountAutomaticFreeShipping : GraphQLObject + ///The context defining which buyers can use the discount. + /// + [Description("The context defining which buyers can use the discount.")] + [NonNull] + public IDiscountContext? context { get; set; } + /// ///The date and time when the discount was created. /// @@ -28725,6 +29124,43 @@ public class DiscountAutomaticNodeEdge : GraphQLObject + ///All buyers are eligible for the discount. + /// + [Description("All buyers are eligible for the discount.")] + public enum DiscountBuyerSelection + { + /// + ///All buyers are eligible for the discount. + /// + [Description("All buyers are eligible for the discount.")] + ALL, + } + + public static class DiscountBuyerSelectionStringValues + { + public const string ALL = @"ALL"; + } + + /// + ///Indicates that a discount applies to all buyers without restrictions, enabling universal promotions that reach every customer. This selection removes buyer-specific limitations from discount eligibility. + /// + ///For example, a flash sale or grand opening promotion would target all buyers to maximize participation and store visibility. + /// + ///Learn more about [discount targeting](https://shopify.dev/docs/api/admin-graphql/latest/objects/DiscountApplication). + /// + [Description("Indicates that a discount applies to all buyers without restrictions, enabling universal promotions that reach every customer. This selection removes buyer-specific limitations from discount eligibility.\n\nFor example, a flash sale or grand opening promotion would target all buyers to maximize participation and store visibility.\n\nLearn more about [discount targeting](https://shopify.dev/docs/api/admin-graphql/latest/objects/DiscountApplication).")] + public class DiscountBuyerSelectionAll : GraphQLObject, IDiscountContext + { + /// + ///All buyers are eligible for the discount. + /// + [Description("All buyers are eligible for the discount.")] + [NonNull] + [EnumType(typeof(DiscountBuyerSelection))] + public string? all { get; set; } + } + /// ///The [discount class](https://help.shopify.com/manual/discounts/combining-discounts/discount-combinations) ///that's used to control how discounts can be combined. @@ -28820,6 +29256,13 @@ public interface IDiscountCode : IGraphQLObject [NonNull] public DiscountCombinesWith? combinesWith { get; set; } + /// + ///The context defining which buyers can use the discount. + /// + [Description("The context defining which buyers can use the discount.")] + [NonNull] + public IDiscountContext? context { get; set; } + /// ///The date and time when the discount was created. /// @@ -29030,6 +29473,13 @@ public class DiscountCodeApp : GraphQLObject, IDiscount, IDisco [NonNull] public DiscountCombinesWith? combinesWith { get; set; } + /// + ///The context defining which buyers can use the discount. + /// + [Description("The context defining which buyers can use the discount.")] + [NonNull] + public IDiscountContext? context { get; set; } + /// ///The date and time when the discount was created. /// @@ -29315,6 +29765,13 @@ public class DiscountCodeBasic : GraphQLObject, IDiscount, ID [NonNull] public DiscountCombinesWith? combinesWith { get; set; } + /// + ///The context defining which buyers can use the discount. + /// + [Description("The context defining which buyers can use the discount.")] + [NonNull] + public IDiscountContext? context { get; set; } + /// ///The date and time when the discount was created. /// @@ -29620,6 +30077,13 @@ public class DiscountCodeBxgy : GraphQLObject, IDiscount, IDis [NonNull] public DiscountCombinesWith? combinesWith { get; set; } + /// + ///The context defining which buyers can use the discount. + /// + [Description("The context defining which buyers can use the discount.")] + [NonNull] + public IDiscountContext? context { get; set; } + /// ///The date and time when the discount was created. /// @@ -29914,6 +30378,13 @@ public class DiscountCodeFreeShipping : GraphQLObject, [NonNull] public DiscountCombinesWith? combinesWith { get; set; } + /// + ///The context defining which buyers can use the discount. + /// + [Description("The context defining which buyers can use the discount.")] + [NonNull] + public IDiscountContext? context { get; set; } + /// ///The date and time when the discount was created. /// @@ -30314,6 +30785,21 @@ public class DiscountCombinesWith : GraphQLObject public bool? shippingDiscounts { get; set; } } + /// + ///The type used to define which buyers can use the discount. + /// + [Description("The type used to define which buyers can use the discount.")] + [JsonPolymorphic(TypeDiscriminatorPropertyName = "__typename")] + [JsonDerivedType(typeof(DiscountBuyerSelectionAll), typeDiscriminator: "DiscountBuyerSelectionAll")] + [JsonDerivedType(typeof(DiscountCustomerSegments), typeDiscriminator: "DiscountCustomerSegments")] + [JsonDerivedType(typeof(DiscountCustomers), typeDiscriminator: "DiscountCustomers")] + public interface IDiscountContext : IGraphQLObject + { + public DiscountBuyerSelectionAll? AsDiscountBuyerSelectionAll() => this as DiscountBuyerSelectionAll; + public DiscountCustomerSegments? AsDiscountCustomerSegments() => this as DiscountCustomerSegments; + public DiscountCustomers? AsDiscountCustomers() => this as DiscountCustomers; + } + /// ///Defines the geographic scope where a shipping discount can be applied based on customer shipping destinations. This configuration determines which countries are eligible for the promotional offer. /// @@ -30484,7 +30970,7 @@ public interface IDiscountCustomerGetsValue : IGraphQLObject ///Segment-based discounts help merchants create more relevant promotional experiences and improve conversion rates by showing the right offers to the right customers at the right time. /// [Description("Represents customer segments that are eligible to receive a specific discount, allowing merchants to target promotions to defined groups of customers. This enables personalized marketing campaigns based on customer behavior and characteristics.\n\nFor example, a \"VIP Customer 15% Off\" promotion might target a segment of high-value repeat customers, while a \"New Customer Welcome\" discount could focus on first-time buyers.\n\nSegment-based discounts help merchants create more relevant promotional experiences and improve conversion rates by showing the right offers to the right customers at the right time.")] - public class DiscountCustomerSegments : GraphQLObject, IDiscountCustomerSelection + public class DiscountCustomerSegments : GraphQLObject, IDiscountContext, IDiscountCustomerSelection { /// ///The list of customer segments who are eligible for the discount. @@ -30525,7 +31011,7 @@ public interface IDiscountCustomerSelection : IGraphQLObject ///Learn more about creating customer-specific discounts using [`discountCodeBasicCreate`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/discountCodeBasicCreate) and [`discountCodeBasicUpdate`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/discountCodeBasicUpdate). /// [Description("Defines customer targeting for discounts through specific individual customers. This object allows merchants to create exclusive discounts that are only available to explicitly selected customers.\n\nFor example, a VIP customer appreciation discount might target specific high-value customers by individually selecting them, or a beta program discount could be offered to selected early adopters.\n\nUse `DiscountCustomers` to:\n- Target specific individual customers for exclusive promotions\n- Create personalized discount experiences for selected customers\n- Offer special discounts to VIP or loyal customers\n- Provide exclusive access to promotions for specific individuals\n\nThis targeting method requires you to add each customer who should be eligible for the discount. For broader targeting based on customer attributes or segments, use [`DiscountCustomerSegments`](https://shopify.dev/docs/api/admin-graphql/latest/objects/DiscountCustomerSegments) instead.\n\nLearn more about creating customer-specific discounts using [`discountCodeBasicCreate`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/discountCodeBasicCreate) and [`discountCodeBasicUpdate`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/discountCodeBasicUpdate).")] - public class DiscountCustomers : GraphQLObject, IDiscountCustomerSelection + public class DiscountCustomers : GraphQLObject, IDiscountContext, IDiscountCustomerSelection { /// ///The list of individual customers eligible for the discount. @@ -30699,6 +31185,16 @@ public enum DiscountErrorCode /// [Description("Recurring cycle limit must be 1 when discount does not apply to subscription items.")] MULTIPLE_RECURRING_CYCLE_LIMIT_FOR_NON_SUBSCRIPTION_ITEMS, + /// + ///Either function ID or function handle must be provided. + /// + [Description("Either function ID or function handle must be provided.")] + MISSING_FUNCTION_IDENTIFIER, + /// + ///Only one of function ID or function handle is allowed. + /// + [Description("Only one of function ID or function handle is allowed.")] + MULTIPLE_FUNCTION_IDENTIFIERS, } public static class DiscountErrorCodeStringValues @@ -30732,6 +31228,8 @@ public static class DiscountErrorCodeStringValues public const string APPLIES_ON_NOTHING = @"APPLIES_ON_NOTHING"; public const string RECURRING_CYCLE_LIMIT_NOT_A_VALID_INTEGER = @"RECURRING_CYCLE_LIMIT_NOT_A_VALID_INTEGER"; public const string MULTIPLE_RECURRING_CYCLE_LIMIT_FOR_NON_SUBSCRIPTION_ITEMS = @"MULTIPLE_RECURRING_CYCLE_LIMIT_FOR_NON_SUBSCRIPTION_ITEMS"; + public const string MISSING_FUNCTION_IDENTIFIER = @"MISSING_FUNCTION_IDENTIFIER"; + public const string MULTIPLE_FUNCTION_IDENTIFIERS = @"MULTIPLE_FUNCTION_IDENTIFIERS"; } /// @@ -31526,6 +32024,7 @@ public class DiscountUserError : GraphQLObject, IDisplayableE [JsonDerivedType(typeof(CatalogUserError), typeDiscriminator: "CatalogUserError")] [JsonDerivedType(typeof(CheckoutBrandingUpsertUserError), typeDiscriminator: "CheckoutBrandingUpsertUserError")] [JsonDerivedType(typeof(CollectionAddProductsV2UserError), typeDiscriminator: "CollectionAddProductsV2UserError")] + [JsonDerivedType(typeof(CollectionReorderProductsUserError), typeDiscriminator: "CollectionReorderProductsUserError")] [JsonDerivedType(typeof(CombinedListingUpdateUserError), typeDiscriminator: "CombinedListingUpdateUserError")] [JsonDerivedType(typeof(CommentApproveUserError), typeDiscriminator: "CommentApproveUserError")] [JsonDerivedType(typeof(CommentDeleteUserError), typeDiscriminator: "CommentDeleteUserError")] @@ -31565,6 +32064,7 @@ public class DiscountUserError : GraphQLObject, IDisplayableE [JsonDerivedType(typeof(FulfillmentOrderReleaseHoldUserError), typeDiscriminator: "FulfillmentOrderReleaseHoldUserError")] [JsonDerivedType(typeof(FulfillmentOrderRescheduleUserError), typeDiscriminator: "FulfillmentOrderRescheduleUserError")] [JsonDerivedType(typeof(FulfillmentOrderSplitUserError), typeDiscriminator: "FulfillmentOrderSplitUserError")] + [JsonDerivedType(typeof(FulfillmentOrdersRerouteUserError), typeDiscriminator: "FulfillmentOrdersRerouteUserError")] [JsonDerivedType(typeof(FulfillmentOrdersSetFulfillmentDeadlineUserError), typeDiscriminator: "FulfillmentOrdersSetFulfillmentDeadlineUserError")] [JsonDerivedType(typeof(GiftCardDeactivateUserError), typeDiscriminator: "GiftCardDeactivateUserError")] [JsonDerivedType(typeof(GiftCardSendNotificationToCustomerUserError), typeDiscriminator: "GiftCardSendNotificationToCustomerUserError")] @@ -31680,6 +32180,7 @@ public class DiscountUserError : GraphQLObject, IDisplayableE [JsonDerivedType(typeof(TaxAppConfigureUserError), typeDiscriminator: "TaxAppConfigureUserError")] [JsonDerivedType(typeof(ThemeCreateUserError), typeDiscriminator: "ThemeCreateUserError")] [JsonDerivedType(typeof(ThemeDeleteUserError), typeDiscriminator: "ThemeDeleteUserError")] + [JsonDerivedType(typeof(ThemeDuplicateUserError), typeDiscriminator: "ThemeDuplicateUserError")] [JsonDerivedType(typeof(ThemePublishUserError), typeDiscriminator: "ThemePublishUserError")] [JsonDerivedType(typeof(ThemeUpdateUserError), typeDiscriminator: "ThemeUpdateUserError")] [JsonDerivedType(typeof(TransactionVoidUserError), typeDiscriminator: "TransactionVoidUserError")] @@ -31717,6 +32218,7 @@ public interface IDisplayableError : IGraphQLObject public CatalogUserError? AsCatalogUserError() => this as CatalogUserError; public CheckoutBrandingUpsertUserError? AsCheckoutBrandingUpsertUserError() => this as CheckoutBrandingUpsertUserError; public CollectionAddProductsV2UserError? AsCollectionAddProductsV2UserError() => this as CollectionAddProductsV2UserError; + public CollectionReorderProductsUserError? AsCollectionReorderProductsUserError() => this as CollectionReorderProductsUserError; public CombinedListingUpdateUserError? AsCombinedListingUpdateUserError() => this as CombinedListingUpdateUserError; public CommentApproveUserError? AsCommentApproveUserError() => this as CommentApproveUserError; public CommentDeleteUserError? AsCommentDeleteUserError() => this as CommentDeleteUserError; @@ -31756,6 +32258,7 @@ public interface IDisplayableError : IGraphQLObject public FulfillmentOrderReleaseHoldUserError? AsFulfillmentOrderReleaseHoldUserError() => this as FulfillmentOrderReleaseHoldUserError; public FulfillmentOrderRescheduleUserError? AsFulfillmentOrderRescheduleUserError() => this as FulfillmentOrderRescheduleUserError; public FulfillmentOrderSplitUserError? AsFulfillmentOrderSplitUserError() => this as FulfillmentOrderSplitUserError; + public FulfillmentOrdersRerouteUserError? AsFulfillmentOrdersRerouteUserError() => this as FulfillmentOrdersRerouteUserError; public FulfillmentOrdersSetFulfillmentDeadlineUserError? AsFulfillmentOrdersSetFulfillmentDeadlineUserError() => this as FulfillmentOrdersSetFulfillmentDeadlineUserError; public GiftCardDeactivateUserError? AsGiftCardDeactivateUserError() => this as GiftCardDeactivateUserError; public GiftCardSendNotificationToCustomerUserError? AsGiftCardSendNotificationToCustomerUserError() => this as GiftCardSendNotificationToCustomerUserError; @@ -31871,6 +32374,7 @@ public interface IDisplayableError : IGraphQLObject public TaxAppConfigureUserError? AsTaxAppConfigureUserError() => this as TaxAppConfigureUserError; public ThemeCreateUserError? AsThemeCreateUserError() => this as ThemeCreateUserError; public ThemeDeleteUserError? AsThemeDeleteUserError() => this as ThemeDeleteUserError; + public ThemeDuplicateUserError? AsThemeDuplicateUserError() => this as ThemeDuplicateUserError; public ThemePublishUserError? AsThemePublishUserError() => this as ThemePublishUserError; public ThemeUpdateUserError? AsThemeUpdateUserError() => this as ThemeUpdateUserError; public TransactionVoidUserError? AsTransactionVoidUserError() => this as TransactionVoidUserError; @@ -36543,6 +37047,16 @@ public enum FulfillmentConstraintRuleCreateUserErrorCode [Description("Function is pending deletion and cannot have new rules created against it.")] FUNCTION_PENDING_DELETION, /// + ///Only one of function_id or function_handle can be provided, not both. + /// + [Description("Only one of function_id or function_handle can be provided, not both.")] + MULTIPLE_FUNCTION_IDENTIFIERS, + /// + ///Either function_id or function_handle must be provided. + /// + [Description("Either function_id or function_handle must be provided.")] + MISSING_FUNCTION_IDENTIFIER, + /// ///Maximum number of fulfillment constraint rules reached. Limit is 10. /// [Description("Maximum number of fulfillment constraint rules reached. Limit is 10.")] @@ -36557,6 +37071,8 @@ public static class FulfillmentConstraintRuleCreateUserErrorCodeStringValues public const string FUNCTION_DOES_NOT_IMPLEMENT = @"FUNCTION_DOES_NOT_IMPLEMENT"; public const string CUSTOM_APP_FUNCTION_NOT_ELIGIBLE = @"CUSTOM_APP_FUNCTION_NOT_ELIGIBLE"; public const string FUNCTION_PENDING_DELETION = @"FUNCTION_PENDING_DELETION"; + public const string MULTIPLE_FUNCTION_IDENTIFIERS = @"MULTIPLE_FUNCTION_IDENTIFIERS"; + public const string MISSING_FUNCTION_IDENTIFIER = @"MISSING_FUNCTION_IDENTIFIER"; public const string MAXIMUM_FULFILLMENT_CONSTRAINT_RULES_REACHED = @"MAXIMUM_FULFILLMENT_CONSTRAINT_RULES_REACHED"; } @@ -36784,6 +37300,11 @@ public enum FulfillmentDisplayStatus [Description("Displayed as **Fulfilled**.")] FULFILLED, /// + ///Displayed as **Picked up by carrier**. + /// + [Description("Displayed as **Picked up by carrier**.")] + CARRIER_PICKED_UP, + /// ///Displayed as **In transit**. /// [Description("Displayed as **In transit**.")] @@ -36844,6 +37365,7 @@ public static class FulfillmentDisplayStatusStringValues public const string DELIVERED = @"DELIVERED"; public const string FAILURE = @"FAILURE"; public const string FULFILLED = @"FULFILLED"; + public const string CARRIER_PICKED_UP = @"CARRIER_PICKED_UP"; public const string IN_TRANSIT = @"IN_TRANSIT"; public const string LABEL_PRINTED = @"LABEL_PRINTED"; public const string LABEL_PURCHASED = @"LABEL_PURCHASED"; @@ -37116,6 +37638,11 @@ public enum FulfillmentEventStatus /// [Description("The fulfillment request failed.")] FAILURE, + /// + ///The fulfillment has been picked up by the carrier. + /// + [Description("The fulfillment has been picked up by the carrier.")] + CARRIER_PICKED_UP, } public static class FulfillmentEventStatusStringValues @@ -37130,6 +37657,7 @@ public static class FulfillmentEventStatusStringValues public const string DELAYED = @"DELAYED"; public const string DELIVERED = @"DELIVERED"; public const string FAILURE = @"FAILURE"; + public const string CARRIER_PICKED_UP = @"CARRIER_PICKED_UP"; } /// @@ -39540,6 +40068,113 @@ public class FulfillmentOrderSupportedAction : GraphQLObject + ///Return type for `fulfillmentOrdersReroute` mutation. + /// + [Description("Return type for `fulfillmentOrdersReroute` mutation.")] + public class FulfillmentOrdersReroutePayload : GraphQLObject + { + /// + ///The fulfillment orders which contains the moved line items. + /// + [Description("The fulfillment orders which contains the moved line items.")] + public IEnumerable? movedFulfillmentOrders { get; set; } + + /// + ///The list of errors that occurred from executing the mutation. + /// + [Description("The list of errors that occurred from executing the mutation.")] + [NonNull] + public IEnumerable? userErrors { get; set; } + } + + /// + ///An error that occurs during the execution of `FulfillmentOrdersReroute`. + /// + [Description("An error that occurs during the execution of `FulfillmentOrdersReroute`.")] + public class FulfillmentOrdersRerouteUserError : GraphQLObject, IDisplayableError + { + /// + ///The error code. + /// + [Description("The error code.")] + [EnumType(typeof(FulfillmentOrdersRerouteUserErrorCode))] + public string? code { get; set; } + + /// + ///The path to the input field that caused the error. + /// + [Description("The path to the input field that caused the error.")] + public IEnumerable? field { get; set; } + + /// + ///The error message. + /// + [Description("The error message.")] + [NonNull] + public string? message { get; set; } + } + + /// + ///Possible error codes that can be returned by `FulfillmentOrdersRerouteUserError`. + /// + [Description("Possible error codes that can be returned by `FulfillmentOrdersRerouteUserError`.")] + public enum FulfillmentOrdersRerouteUserErrorCode + { + /// + ///No fulfillment order IDs were provided. + /// + [Description("No fulfillment order IDs were provided.")] + NO_FULFILLMENT_ORDER_IDS, + /// + ///Fulfillment order could not be found. + /// + [Description("Fulfillment order could not be found.")] + FULFILLMENT_ORDER_NOT_FOUND, + /// + ///Fulfillment orders are not from the same order. + /// + [Description("Fulfillment orders are not from the same order.")] + FULFILLMENT_ORDERS_NOT_FROM_THE_SAME_ORDER, + /// + ///All fulfillment orders must have status and request status compatible with reroutable states. + /// + [Description("All fulfillment orders must have status and request status compatible with reroutable states.")] + FULFILLMENT_ORDERS_STATE_NOT_SUPPORTED, + /// + ///Cannot reassign location for fulfillment orders. + /// + [Description("Cannot reassign location for fulfillment orders.")] + CANNOT_REASSIGN_LOCATION_FOR_FULFILLMENT_ORDERS, + /// + ///The delivery method type is not supported. + /// + [Description("The delivery method type is not supported.")] + DELIVERY_METHOD_TYPE_NOT_SUPPORTED, + /// + ///This feature is only supported for multi-location shops. + /// + [Description("This feature is only supported for multi-location shops.")] + SINGLE_LOCATION_SHOP_NOT_SUPPORTED, + /// + ///Fulfillment orders must belong to the same location. + /// + [Description("Fulfillment orders must belong to the same location.")] + FULFILLMENT_ORDERS_MUST_BELONG_TO_SAME_LOCATION, + } + + public static class FulfillmentOrdersRerouteUserErrorCodeStringValues + { + public const string NO_FULFILLMENT_ORDER_IDS = @"NO_FULFILLMENT_ORDER_IDS"; + public const string FULFILLMENT_ORDER_NOT_FOUND = @"FULFILLMENT_ORDER_NOT_FOUND"; + public const string FULFILLMENT_ORDERS_NOT_FROM_THE_SAME_ORDER = @"FULFILLMENT_ORDERS_NOT_FROM_THE_SAME_ORDER"; + public const string FULFILLMENT_ORDERS_STATE_NOT_SUPPORTED = @"FULFILLMENT_ORDERS_STATE_NOT_SUPPORTED"; + public const string CANNOT_REASSIGN_LOCATION_FOR_FULFILLMENT_ORDERS = @"CANNOT_REASSIGN_LOCATION_FOR_FULFILLMENT_ORDERS"; + public const string DELIVERY_METHOD_TYPE_NOT_SUPPORTED = @"DELIVERY_METHOD_TYPE_NOT_SUPPORTED"; + public const string SINGLE_LOCATION_SHOP_NOT_SUPPORTED = @"SINGLE_LOCATION_SHOP_NOT_SUPPORTED"; + public const string FULFILLMENT_ORDERS_MUST_BELONG_TO_SAME_LOCATION = @"FULFILLMENT_ORDERS_MUST_BELONG_TO_SAME_LOCATION"; + } + /// ///Return type for `fulfillmentOrdersSetFulfillmentDeadline` mutation. /// @@ -39772,6 +40407,7 @@ public class FulfillmentService : GraphQLObject ///Whether the fulfillment service can stock inventory alongside other locations. /// [Description("Whether the fulfillment service can stock inventory alongside other locations.")] + [Obsolete("Fulfillment services are all migrating to permit SKU sharing.\nSetting permits SKU sharing to false [is no longer supported](https://shopify.dev/changelog/setting-permitsskusharing-argument-to-false-when-creating-a-fulfillment-service-returns-an-error).")] [NonNull] public bool? permitsSkuSharing { get; set; } @@ -41650,7 +42286,9 @@ public interface IHasMetafields : IGraphQLObject [JsonDerivedType(typeof(Blog), typeDiscriminator: "Blog")] [JsonDerivedType(typeof(Collection), typeDiscriminator: "Collection")] [JsonDerivedType(typeof(CookieBanner), typeDiscriminator: "CookieBanner")] + [JsonDerivedType(typeof(Image), typeDiscriminator: "Image")] [JsonDerivedType(typeof(Link), typeDiscriminator: "Link")] + [JsonDerivedType(typeof(MediaImage), typeDiscriminator: "MediaImage")] [JsonDerivedType(typeof(Menu), typeDiscriminator: "Menu")] [JsonDerivedType(typeof(OnlineStoreTheme), typeDiscriminator: "OnlineStoreTheme")] [JsonDerivedType(typeof(Page), typeDiscriminator: "Page")] @@ -41668,7 +42306,9 @@ public interface IHasPublishedTranslations : IGraphQLObject public Blog? AsBlog() => this as Blog; public Collection? AsCollection() => this as Collection; public CookieBanner? AsCookieBanner() => this as CookieBanner; + public Image? AsImage() => this as Image; public Link? AsLink() => this as Link; + public MediaImage? AsMediaImage() => this as MediaImage; public Menu? AsMenu() => this as Menu; public OnlineStoreTheme? AsOnlineStoreTheme() => this as OnlineStoreTheme; public Page? AsPage() => this as Page; @@ -41693,9 +42333,11 @@ public interface IHasPublishedTranslations : IGraphQLObject /// [Description("Represents information about the store credit accounts associated to the specified owner.")] [JsonPolymorphic(TypeDiscriminatorPropertyName = "__typename")] + [JsonDerivedType(typeof(CompanyLocation), typeDiscriminator: "CompanyLocation")] [JsonDerivedType(typeof(Customer), typeDiscriminator: "Customer")] public interface IHasStoreCreditAccounts : IGraphQLObject { + public CompanyLocation? AsCompanyLocation() => this as CompanyLocation; public Customer? AsCustomer() => this as Customer; /// ///Returns a list of store credit accounts that belong to the owner resource. @@ -41710,7 +42352,7 @@ public interface IHasStoreCreditAccounts : IGraphQLObject ///Represents an image resource. /// [Description("Represents an image resource.")] - public class Image : GraphQLObject, IHasMetafields + public class Image : GraphQLObject, IHasMetafields, IHasPublishedTranslations { /// ///A word or phrase to share the nature or contents of an image. @@ -41783,6 +42425,13 @@ public class Image : GraphQLObject, IHasMetafields [NonNull] public string? transformedSrc { get; set; } + /// + ///The published translations associated with the resource. + /// + [Description("The published translations associated with the resource.")] + [NonNull] + public IEnumerable? translations { get; set; } + /// ///The location of the image as a URL. /// @@ -43205,6 +43854,11 @@ public enum InventorySetOnHandQuantitiesUserErrorCode /// [Description("The total quantity can't be higher than 1,000,000,000.")] INVALID_QUANTITY_TOO_HIGH, + /// + ///The compareQuantity value does not match persisted value. + /// + [Description("The compareQuantity value does not match persisted value.")] + COMPARE_QUANTITY_STALE, } public static class InventorySetOnHandQuantitiesUserErrorCodeStringValues @@ -43218,6 +43872,7 @@ public static class InventorySetOnHandQuantitiesUserErrorCodeStringValues public const string ITEM_NOT_STOCKED_AT_LOCATION = @"ITEM_NOT_STOCKED_AT_LOCATION"; public const string NON_MUTABLE_INVENTORY_ITEM = @"NON_MUTABLE_INVENTORY_ITEM"; public const string INVALID_QUANTITY_TOO_HIGH = @"INVALID_QUANTITY_TOO_HIGH"; + public const string COMPARE_QUANTITY_STALE = @"COMPARE_QUANTITY_STALE"; } /// @@ -43500,6 +44155,24 @@ public static class InventorySetScheduledChangesUserErrorCodeStringValues [Description("Represents an inventory shipment.")] public class InventoryShipment : GraphQLObject, INode { + /// + ///The date the shipment was created in UTC. + /// + [Description("The date the shipment was created in UTC.")] + public DateTime? dateCreated { get; set; } + + /// + ///The date the shipment was initially received in UTC. + /// + [Description("The date the shipment was initially received in UTC.")] + public DateTime? dateReceived { get; set; } + + /// + ///The date the shipment was shipped in UTC. + /// + [Description("The date the shipment was shipped in UTC.")] + public DateTime? dateShipped { get; set; } + /// ///A globally-unique ID. /// @@ -43628,6 +44301,11 @@ public class InventoryShipmentAddItemsUserError : GraphQLObject + ///The location selected can't be found. + /// + [Description("The location selected can't be found.")] + LOCATION_NOT_FOUND, /// ///Current shipment status does not support this operation. /// @@ -43659,11 +44337,6 @@ public enum InventoryShipmentAddItemsUserErrorCode [Description("The shipment was not found.")] SHIPMENT_NOT_FOUND, /// - ///The location selected can't be found. - /// - [Description("The location selected can't be found.")] - LOCATION_NOT_FOUND, - /// ///The location selected is not active. /// [Description("The location selected is not active.")] @@ -43672,13 +44345,13 @@ public enum InventoryShipmentAddItemsUserErrorCode public static class InventoryShipmentAddItemsUserErrorCodeStringValues { + public const string LOCATION_NOT_FOUND = @"LOCATION_NOT_FOUND"; public const string INVALID_SHIPMENT_STATUS = @"INVALID_SHIPMENT_STATUS"; public const string DUPLICATE_ITEM = @"DUPLICATE_ITEM"; public const string INVALID_QUANTITY = @"INVALID_QUANTITY"; public const string ITEM_NOT_FOUND = @"ITEM_NOT_FOUND"; public const string UNTRACKED_ITEM = @"UNTRACKED_ITEM"; public const string SHIPMENT_NOT_FOUND = @"SHIPMENT_NOT_FOUND"; - public const string LOCATION_NOT_FOUND = @"LOCATION_NOT_FOUND"; public const string LOCATION_NOT_ACTIVE = @"LOCATION_NOT_ACTIVE"; } @@ -44357,6 +45030,11 @@ public class InventoryShipmentReceiveUserError : GraphQLObject + ///The location selected can't be found. + /// + [Description("The location selected can't be found.")] + LOCATION_NOT_FOUND, /// ///Unexpected internal error happened. /// @@ -44392,15 +45070,11 @@ public enum InventoryShipmentReceiveUserErrorCode /// [Description("The location selected is not active.")] LOCATION_NOT_ACTIVE, - /// - ///The location selected can't be found. - /// - [Description("The location selected can't be found.")] - LOCATION_NOT_FOUND, } public static class InventoryShipmentReceiveUserErrorCodeStringValues { + public const string LOCATION_NOT_FOUND = @"LOCATION_NOT_FOUND"; public const string INTERNAL_ERROR = @"INTERNAL_ERROR"; public const string INVALID_SHIPMENT_STATUS = @"INVALID_SHIPMENT_STATUS"; public const string INVENTORY_STATE_NOT_ACTIVE = @"INVENTORY_STATE_NOT_ACTIVE"; @@ -44408,7 +45082,6 @@ public static class InventoryShipmentReceiveUserErrorCodeStringValues public const string INVALID_QUANTITY = @"INVALID_QUANTITY"; public const string ITEM_NOT_FOUND = @"ITEM_NOT_FOUND"; public const string LOCATION_NOT_ACTIVE = @"LOCATION_NOT_ACTIVE"; - public const string LOCATION_NOT_FOUND = @"LOCATION_NOT_FOUND"; } /// @@ -44464,6 +45137,11 @@ public class InventoryShipmentRemoveItemsUserError : GraphQLObject + ///The location selected can't be found. + /// + [Description("The location selected can't be found.")] + LOCATION_NOT_FOUND, /// ///Unexpected internal error happened. /// @@ -44485,11 +45163,6 @@ public enum InventoryShipmentRemoveItemsUserErrorCode [Description("Current shipment status does not support this operation.")] INVALID_SHIPMENT_STATUS, /// - ///The location selected can't be found. - /// - [Description("The location selected can't be found.")] - LOCATION_NOT_FOUND, - /// ///The location selected is not active. /// [Description("The location selected is not active.")] @@ -44498,11 +45171,11 @@ public enum InventoryShipmentRemoveItemsUserErrorCode public static class InventoryShipmentRemoveItemsUserErrorCodeStringValues { + public const string LOCATION_NOT_FOUND = @"LOCATION_NOT_FOUND"; public const string INTERNAL_ERROR = @"INTERNAL_ERROR"; public const string SHIPMENT_NOT_FOUND = @"SHIPMENT_NOT_FOUND"; public const string ITEM_NOT_FOUND = @"ITEM_NOT_FOUND"; public const string INVALID_SHIPMENT_STATUS = @"INVALID_SHIPMENT_STATUS"; - public const string LOCATION_NOT_FOUND = @"LOCATION_NOT_FOUND"; public const string LOCATION_NOT_ACTIVE = @"LOCATION_NOT_ACTIVE"; } @@ -44713,6 +45386,11 @@ public class InventoryShipmentUpdateItemQuantitiesUserError : GraphQLObject + ///The location selected can't be found. + /// + [Description("The location selected can't be found.")] + LOCATION_NOT_FOUND, /// ///The shipment was not found. /// @@ -44734,11 +45412,6 @@ public enum InventoryShipmentUpdateItemQuantitiesUserErrorCode [Description("Current shipment status does not support this operation.")] INVALID_SHIPMENT_STATUS, /// - ///The location selected can't be found. - /// - [Description("The location selected can't be found.")] - LOCATION_NOT_FOUND, - /// ///The location selected is not active. /// [Description("The location selected is not active.")] @@ -44747,11 +45420,11 @@ public enum InventoryShipmentUpdateItemQuantitiesUserErrorCode public static class InventoryShipmentUpdateItemQuantitiesUserErrorCodeStringValues { + public const string LOCATION_NOT_FOUND = @"LOCATION_NOT_FOUND"; public const string SHIPMENT_NOT_FOUND = @"SHIPMENT_NOT_FOUND"; public const string ITEM_NOT_FOUND = @"ITEM_NOT_FOUND"; public const string INVALID_QUANTITY = @"INVALID_QUANTITY"; public const string INVALID_SHIPMENT_STATUS = @"INVALID_SHIPMENT_STATUS"; - public const string LOCATION_NOT_FOUND = @"LOCATION_NOT_FOUND"; public const string LOCATION_NOT_ACTIVE = @"LOCATION_NOT_ACTIVE"; } @@ -45087,6 +45760,11 @@ public enum InventoryTransferCreateAsReadyToShipUserErrorCode [Description("The tag exceeds the maximum length.")] TAG_EXCEEDS_MAX_LENGTH, /// + ///A location is required for this operation. + /// + [Description("A location is required for this operation.")] + LOCATION_REQUIRED, + /// ///Bundled items cannot be used for this operation. /// [Description("Bundled items cannot be used for this operation.")] @@ -45127,6 +45805,7 @@ public static class InventoryTransferCreateAsReadyToShipUserErrorCodeStringValue public const string LOCATION_NOT_FOUND = @"LOCATION_NOT_FOUND"; public const string TRANSFER_ORIGIN_CANNOT_BE_THE_SAME_AS_DESTINATION = @"TRANSFER_ORIGIN_CANNOT_BE_THE_SAME_AS_DESTINATION"; public const string TAG_EXCEEDS_MAX_LENGTH = @"TAG_EXCEEDS_MAX_LENGTH"; + public const string LOCATION_REQUIRED = @"LOCATION_REQUIRED"; public const string BUNDLED_ITEM = @"BUNDLED_ITEM"; public const string UNTRACKED_ITEM = @"UNTRACKED_ITEM"; public const string ITEM_NOT_FOUND = @"ITEM_NOT_FOUND"; @@ -45728,6 +46407,11 @@ public enum InventoryTransferMarkAsReadyToShipUserErrorCode [Description("Current transfer status does not support this operation.")] INVALID_TRANSFER_STATUS, /// + ///A location is required for this operation. + /// + [Description("A location is required for this operation.")] + LOCATION_REQUIRED, + /// ///One or more items are not valid. /// [Description("One or more items are not valid.")] @@ -45749,6 +46433,7 @@ public static class InventoryTransferMarkAsReadyToShipUserErrorCodeStringValues public const string TRANSFER_NOT_FOUND = @"TRANSFER_NOT_FOUND"; public const string ITEMS_EMPTY = @"ITEMS_EMPTY"; public const string INVALID_TRANSFER_STATUS = @"INVALID_TRANSFER_STATUS"; + public const string LOCATION_REQUIRED = @"LOCATION_REQUIRED"; public const string INVALID_ITEM = @"INVALID_ITEM"; public const string LOCATION_NOT_ACTIVE = @"LOCATION_NOT_ACTIVE"; public const string LOCATION_NOT_FOUND = @"LOCATION_NOT_FOUND"; @@ -49880,6 +50565,48 @@ public static class MailingAddressValidationResultStringValues public const string WARNING = @"WARNING"; } + /// + ///The type of resource a payment mandate can be used for. + /// + [Description("The type of resource a payment mandate can be used for.")] + public enum MandateResourceType + { + /// + ///A credential stored on file for merchant and customer initiated transactions. + /// + [Description("A credential stored on file for merchant and customer initiated transactions.")] + CREDENTIAL_ON_FILE, + /// + ///A credential stored on file for checkout. + /// + [Description("A credential stored on file for checkout.")] + CHECKOUT, + /// + ///A credential stored on file for a Draft Order. + /// + [Description("A credential stored on file for a Draft Order.")] + DRAFT_ORDER, + /// + ///A credential stored on file for an Order. + /// + [Description("A credential stored on file for an Order.")] + ORDER, + /// + ///A credential stored for subscription billing attempts. + /// + [Description("A credential stored for subscription billing attempts.")] + SUBSCRIPTIONS, + } + + public static class MandateResourceTypeStringValues + { + public const string CREDENTIAL_ON_FILE = @"CREDENTIAL_ON_FILE"; + public const string CHECKOUT = @"CHECKOUT"; + public const string DRAFT_ORDER = @"DRAFT_ORDER"; + public const string ORDER = @"ORDER"; + public const string SUBSCRIPTIONS = @"SUBSCRIPTIONS"; + } + /// ///Manual discount applications capture the intentions of a discount that was manually created for an order. /// @@ -51449,6 +52176,12 @@ public enum MarketUserErrorCode /// [Description("Managing this catalog is not supported by your plan.")] UNPERMITTED_ENTITLEMENTS_MARKET_CATALOGS, + /// + ///Can't add selected responders to a province driven market. + /// + [Description("Can't add selected responders to a province driven market.")] + [Obsolete("No longer used")] + INVALID_RESPONDER_FOR_PROVINCE_DRIVEN_MARKET, } public static class MarketUserErrorCodeStringValues @@ -51543,6 +52276,8 @@ public static class MarketUserErrorCodeStringValues public const string LOCATION_MATCH_ALL_REQUIRES_ONE_SPECIFIC_REGION = @"LOCATION_MATCH_ALL_REQUIRES_ONE_SPECIFIC_REGION"; public const string LOCATION_REGION_COUNTRY_MISMATCH = @"LOCATION_REGION_COUNTRY_MISMATCH"; public const string UNPERMITTED_ENTITLEMENTS_MARKET_CATALOGS = @"UNPERMITTED_ENTITLEMENTS_MARKET_CATALOGS"; + [Obsolete("No longer used")] + public const string INVALID_RESPONDER_FOR_PROVINCE_DRIVEN_MARKET = @"INVALID_RESPONDER_FOR_PROVINCE_DRIVEN_MARKET"; } /// @@ -53391,6 +54126,11 @@ public enum MarketsSortKeys [Description("Sort by the `name` value.")] NAME, /// + ///Sort by the `status` value. + /// + [Description("Sort by the `status` value.")] + STATUS, + /// ///Sort by the `updated_at` value. /// [Description("Sort by the `updated_at` value.")] @@ -53404,6 +54144,7 @@ public static class MarketsSortKeysStringValues public const string MARKET_CONDITION_TYPES = @"MARKET_CONDITION_TYPES"; public const string MARKET_TYPE = @"MARKET_TYPE"; public const string NAME = @"NAME"; + public const string STATUS = @"STATUS"; public const string UPDATED_AT = @"UPDATED_AT"; } @@ -53896,7 +54637,7 @@ public static class MediaHostStringValues ///[asynchronous media management](https://shopify.dev/docs/apps/build/graphql/migrate/new-product-model/product-model-components#asynchronous-media-management). /// [Description("The `MediaImage` object represents an image hosted on Shopify's\n[content delivery network (CDN)](https://shopify.dev/docs/storefronts/themes/best-practices/performance/platform#shopify-cdn).\nShopify CDN is a content system that serves as the primary way to store,\nmanage, and deliver visual content for products, variants, and other resources across the Shopify platform.\n\nThe `MediaImage` object provides information to:\n\n- Store and display product and variant images across online stores, admin interfaces, and mobile apps.\n- Retrieve visual branding elements, including logos, banners, favicons, and background images in checkout flows.\n- Retrieve signed URLs for secure, time-limited access to original image files.\n\nEach `MediaImage` object provides both the processed image data (with automatic optimization and CDN delivery)\nand access to the original source file. The image processing is handled asynchronously, so images\nmight not be immediately available after upload. The\n[`status`](https://shopify.dev/docs/api/admin-graphql/latest/objects/mediaimage#field-MediaImage.fields.status)\nfield indicates when processing is complete and the image is ready for use.\n\nThe `MediaImage` object implements the [`Media`](https://shopify.dev/docs/api/admin-graphql/latest/interfaces/Media)\ninterface alongside other media types, like videos and 3D models.\n\nLearn about\nmanaging media for [products](https://shopify.dev/docs/apps/build/online-store/product-media),\n[product variants](https://shopify.dev/docs/apps/build/online-store/product-variant-media), and\n[asynchronous media management](https://shopify.dev/docs/apps/build/graphql/migrate/new-product-model/product-model-components#asynchronous-media-management).")] - public class MediaImage : GraphQLObject, IFile, IHasMetafields, IMedia, INode, IMetafieldReference + public class MediaImage : GraphQLObject, IFile, IHasMetafields, IHasPublishedTranslations, IMedia, INode, IMetafieldReference { /// ///A word or phrase to share the nature or contents of a media. @@ -54005,6 +54746,13 @@ public class MediaImage : GraphQLObject, IFile, IHasMetafields, IMed [EnumType(typeof(MediaStatus))] public string? status { get; set; } + /// + ///The published translations associated with the resource. + /// + [Description("The published translations associated with the resource.")] + [NonNull] + public IEnumerable? translations { get; set; } + /// ///The date and time ([ISO 8601 format](http://en.wikipedia.org/wiki/ISO_8601)) when the file was last updated. /// @@ -55707,6 +56455,11 @@ public enum MetafieldDefinitionCreateUserErrorCode [Description("The definition limit per owner type has exceeded.")] RESOURCE_TYPE_LIMIT_EXCEEDED, /// + ///The definition limit per owner type for the app has exceeded. + /// + [Description("The definition limit per owner type for the app has exceeded.")] + RESOURCE_TYPE_LIMIT_EXCEEDED_BY_APP, + /// ///The maximum limit of definitions per owner type has exceeded. /// [Description("The maximum limit of definitions per owner type has exceeded.")] @@ -55789,6 +56542,7 @@ public static class MetafieldDefinitionCreateUserErrorCodeStringValues public const string BLANK = @"BLANK"; public const string CAPABILITY_REQUIRED_BUT_DISABLED = @"CAPABILITY_REQUIRED_BUT_DISABLED"; public const string RESOURCE_TYPE_LIMIT_EXCEEDED = @"RESOURCE_TYPE_LIMIT_EXCEEDED"; + public const string RESOURCE_TYPE_LIMIT_EXCEEDED_BY_APP = @"RESOURCE_TYPE_LIMIT_EXCEEDED_BY_APP"; public const string LIMIT_EXCEEDED = @"LIMIT_EXCEEDED"; public const string INVALID_OPTION = @"INVALID_OPTION"; public const string DUPLICATE_OPTION = @"DUPLICATE_OPTION"; @@ -55905,6 +56659,11 @@ public enum MetafieldDefinitionDeleteUserErrorCode [Description("Definition is managed by app configuration and cannot be modified through the API.")] APP_CONFIG_MANAGED, /// + ///Definition is required by an installed app and cannot be deleted. + /// + [Description("Definition is required by an installed app and cannot be deleted.")] + STANDARD_METAFIELD_DEFINITION_DEPENDENT_ON_APP, + /// ///Owner type can't be used in this mutation. /// [Description("Owner type can't be used in this mutation.")] @@ -55921,6 +56680,7 @@ public static class MetafieldDefinitionDeleteUserErrorCodeStringValues public const string RESERVED_NAMESPACE_ORPHANED_METAFIELDS = @"RESERVED_NAMESPACE_ORPHANED_METAFIELDS"; public const string METAFIELD_DEFINITION_IN_USE = @"METAFIELD_DEFINITION_IN_USE"; public const string APP_CONFIG_MANAGED = @"APP_CONFIG_MANAGED"; + public const string STANDARD_METAFIELD_DEFINITION_DEPENDENT_ON_APP = @"STANDARD_METAFIELD_DEFINITION_DEPENDENT_ON_APP"; public const string DISALLOWED_OWNER_TYPE = @"DISALLOWED_OWNER_TYPE"; } @@ -56375,6 +57135,11 @@ public enum MetafieldDefinitionUpdateUserErrorCode [Description("The input value is blank.")] BLANK, /// + ///The input value is invalid. + /// + [Description("The input value is invalid.")] + INVALID, + /// ///The metafield definition wasn't found. /// [Description("The metafield definition wasn't found.")] @@ -56476,6 +57241,7 @@ public static class MetafieldDefinitionUpdateUserErrorCodeStringValues public const string PRESENT = @"PRESENT"; public const string TOO_LONG = @"TOO_LONG"; public const string BLANK = @"BLANK"; + public const string INVALID = @"INVALID"; public const string NOT_FOUND = @"NOT_FOUND"; public const string INVALID_INPUT = @"INVALID_INPUT"; public const string CAPABILITY_REQUIRED_BUT_DISABLED = @"CAPABILITY_REQUIRED_BUT_DISABLED"; @@ -56777,6 +57543,7 @@ public static class MetafieldOwnerTypeStringValues /// [Description("The resource referenced by the metafield value.")] [JsonPolymorphic(TypeDiscriminatorPropertyName = "__typename")] + [JsonDerivedType(typeof(Article), typeDiscriminator: "Article")] [JsonDerivedType(typeof(Collection), typeDiscriminator: "Collection")] [JsonDerivedType(typeof(Company), typeDiscriminator: "Company")] [JsonDerivedType(typeof(Customer), typeDiscriminator: "Customer")] @@ -56792,6 +57559,7 @@ public static class MetafieldOwnerTypeStringValues [JsonDerivedType(typeof(Video), typeDiscriminator: "Video")] public interface IMetafieldReference : IGraphQLObject { + public Article? AsArticle() => this as Article; public Collection? AsCollection() => this as Collection; public Company? AsCompany() => this as Company; public Customer? AsCustomer() => this as Customer; @@ -58105,6 +58873,27 @@ public class MetaobjectField : GraphQLObject public string? value { get; set; } } + /// + ///Information about the admin filterable capability. + /// + [Description("Information about the admin filterable capability.")] + public class MetaobjectFieldCapabilityAdminFilterable : GraphQLObject + { + /// + ///Indicates if the definition is eligible to have the capability. + /// + [Description("Indicates if the definition is eligible to have the capability.")] + [NonNull] + public bool? eligible { get; set; } + + /// + ///Indicates if the capability is enabled. + /// + [Description("Indicates if the capability is enabled.")] + [NonNull] + public bool? enabled { get; set; } + } + /// ///Defines a field for a MetaobjectDefinition with properties ///such as the field's data type and validations. @@ -58112,6 +58901,13 @@ public class MetaobjectField : GraphQLObject [Description("Defines a field for a MetaobjectDefinition with properties\nsuch as the field's data type and validations.")] public class MetaobjectFieldDefinition : GraphQLObject { + /// + ///Capabilities available for this metaobject field definition. + /// + [Description("Capabilities available for this metaobject field definition.")] + [NonNull] + public MetaobjectFieldDefinitionCapabilities? capabilities { get; set; } + /// ///The administrative description. /// @@ -58155,6 +58951,20 @@ public class MetaobjectFieldDefinition : GraphQLObject? validations { get; set; } } + /// + ///Capabilities available for a metaobject field definition. + /// + [Description("Capabilities available for a metaobject field definition.")] + public class MetaobjectFieldDefinitionCapabilities : GraphQLObject + { + /// + ///Indicate whether a metaobject field definition is configured for filtering. + /// + [Description("Indicate whether a metaobject field definition is configured for filtering.")] + [NonNull] + public MetaobjectFieldCapabilityAdminFilterable? adminFilterable { get; set; } + } + /// ///Defines visibility status for metaobjects. /// @@ -58438,6 +59248,11 @@ public enum MetaobjectUserErrorCode [Description("Definition is managed by app configuration and cannot be modified through the API.")] APP_CONFIG_MANAGED, /// + ///Definition is required by an installed app and cannot be deleted. + /// + [Description("Definition is required by an installed app and cannot be deleted.")] + STANDARD_METAOBJECT_DEFINITION_DEPENDENT_ON_APP, + /// ///The capability you are using is not enabled. /// [Description("The capability you are using is not enabled.")] @@ -58502,6 +59317,7 @@ public static class MetaobjectUserErrorCodeStringValues public const string DISPLAY_NAME_CONFLICT = @"DISPLAY_NAME_CONFLICT"; public const string ADMIN_ACCESS_INPUT_NOT_ALLOWED = @"ADMIN_ACCESS_INPUT_NOT_ALLOWED"; public const string APP_CONFIG_MANAGED = @"APP_CONFIG_MANAGED"; + public const string STANDARD_METAOBJECT_DEFINITION_DEPENDENT_ON_APP = @"STANDARD_METAOBJECT_DEFINITION_DEPENDENT_ON_APP"; public const string CAPABILITY_NOT_ENABLED = @"CAPABILITY_NOT_ENABLED"; public const string URL_HANDLE_TAKEN = @"URL_HANDLE_TAKEN"; public const string URL_HANDLE_INVALID = @"URL_HANDLE_INVALID"; @@ -58985,9 +59801,19 @@ public class Mutation : GraphQLObject, IMutationRoot public AppPurchaseOneTimeCreatePayload? appPurchaseOneTimeCreate { get; set; } /// - ///Revokes access scopes previously granted for an app installation. + ///Revokes previously granted access scopes from an app installation, allowing merchants to reduce an app's permissions without completely uninstalling it. This provides granular control over what data and functionality apps can access. + /// + ///For example, if a merchant no longer wants an app to access customer information but still wants to use its inventory features, they can revoke the customer-related scopes while keeping inventory permissions active. + /// + ///Use the `appRevokeAccessScopes` mutation to: + ///- Remove specific permissions from installed apps + ///- Maintain app functionality while minimizing data exposure + /// + ///The mutation returns details about which scopes were successfully revoked and any errors that prevented certain permissions from being removed. + /// + ///Learn more about [managing app permissions](https://shopify.dev/docs/apps/build/authentication-authorization/app-installation/manage-access-scopes#revoke-granted-scopes-dynamically). /// - [Description("Revokes access scopes previously granted for an app installation.")] + [Description("Revokes previously granted access scopes from an app installation, allowing merchants to reduce an app's permissions without completely uninstalling it. This provides granular control over what data and functionality apps can access.\n\nFor example, if a merchant no longer wants an app to access customer information but still wants to use its inventory features, they can revoke the customer-related scopes while keeping inventory permissions active.\n\nUse the `appRevokeAccessScopes` mutation to:\n- Remove specific permissions from installed apps\n- Maintain app functionality while minimizing data exposure\n\nThe mutation returns details about which scopes were successfully revoked and any errors that prevented certain permissions from being removed.\n\nLearn more about [managing app permissions](https://shopify.dev/docs/apps/build/authentication-authorization/app-installation/manage-access-scopes#revoke-granted-scopes-dynamically).")] public AppRevokeAccessScopesPayload? appRevokeAccessScopes { get; set; } /// @@ -59039,9 +59865,17 @@ public class Mutation : GraphQLObject, IMutationRoot public AppSubscriptionTrialExtendPayload? appSubscriptionTrialExtend { get; set; } /// - ///Uninstalls an app. + ///Uninstalls an app from a shop. + /// + ///This mutation can only be used by apps to uninstall themselves. Apps with the `apps` access scope can uninstall other apps by providing the app ID in the input parameter. + /// + ///Use the `appUninstall` mutation to programmatically remove apps from shops. + /// + ///The mutation returns the uninstalled app and any errors that occurred during the uninstallation process. + /// + ///Learn more about [app lifecycle management](https://shopify.dev/docs/apps/build/authentication-authorization/app-installation/uninstall-app-api-request). /// - [Description("Uninstalls an app.")] + [Description("Uninstalls an app from a shop.\n\nThis mutation can only be used by apps to uninstall themselves. Apps with the `apps` access scope can uninstall other apps by providing the app ID in the input parameter.\n\nUse the `appUninstall` mutation to programmatically remove apps from shops.\n\nThe mutation returns the uninstalled app and any errors that occurred during the uninstallation process.\n\nLearn more about [app lifecycle management](https://shopify.dev/docs/apps/build/authentication-authorization/app-installation/uninstall-app-api-request).")] public AppUninstallPayload? appUninstall { get; set; } /// @@ -59192,9 +60026,9 @@ public class Mutation : GraphQLObject, IMutationRoot public CatalogContextUpdatePayload? catalogContextUpdate { get; set; } /// - ///Creates a new catalog. + ///Creates a new catalog. For a complete explanation of a [`Catalog`](https://shopify.dev/api/admin-graphql/latest/interfaces/catalog)'s behaviour, and how you can use it with [`Publication`s](https://shopify.dev/api/admin-graphql/latest/objects/Publication) and [`PriceList`s](https://shopify.dev/api/admin-graphql/latest/objects/PriceList), see [here](https://shopify.dev/docs/apps/build/markets/catalogs-different-markets). /// - [Description("Creates a new catalog.")] + [Description("Creates a new catalog. For a complete explanation of a [`Catalog`](https://shopify.dev/api/admin-graphql/latest/interfaces/catalog)'s behaviour, and how you can use it with [`Publication`s](https://shopify.dev/api/admin-graphql/latest/objects/Publication) and [`PriceList`s](https://shopify.dev/api/admin-graphql/latest/objects/PriceList), see [here](https://shopify.dev/docs/apps/build/markets/catalogs-different-markets).")] public CatalogCreatePayload? catalogCreate { get; set; } /// @@ -60719,8 +61553,10 @@ public class Mutation : GraphQLObject, IMutationRoot /// ///Marks a scheduled fulfillment order as open. + /// + ///From API version 2026-01, this will also mark a fulfillment order as open when it is assigned to a merchant managed location and has had progress reported. /// - [Description("Marks a scheduled fulfillment order as open.")] + [Description("Marks a scheduled fulfillment order as open.\n\nFrom API version 2026-01, this will also mark a fulfillment order as open when it is assigned to a merchant managed location and has had progress reported.")] public FulfillmentOrderOpenPayload? fulfillmentOrderOpen { get; set; } /// @@ -60769,6 +61605,14 @@ public class Mutation : GraphQLObject, IMutationRoot [Description("Sends a fulfillment request to the fulfillment service of a fulfillment order.")] public FulfillmentOrderSubmitFulfillmentRequestPayload? fulfillmentOrderSubmitFulfillmentRequest { get; set; } + /// + ///Route the fulfillment orders to an alternative location, according to the shop's order routing settings. This involves: + ///* Finding an alternate location that can fulfill the fulfillment orders. + ///* Assigning the fulfillment orders to the new location. + /// + [Description("Route the fulfillment orders to an alternative location, according to the shop's order routing settings. This involves:\n* Finding an alternate location that can fulfill the fulfillment orders.\n* Assigning the fulfillment orders to the new location.")] + public FulfillmentOrdersReroutePayload? fulfillmentOrdersReroute { get; set; } + /// ///Sets the latest date and time by which the fulfillment orders need to be fulfilled. /// @@ -60802,14 +61646,9 @@ public class Mutation : GraphQLObject, IMutationRoot /// ///Updates a fulfillment service. /// - ///If you are using API version `2023-10` or later, - ///and you need to update the location managed by the fulfillment service - ///(for example, to change the address of a fulfillment service), - ///use the - ///[LocationEdit](https://shopify.dev/api/admin-graphql/latest/mutations/locationEdit) - ///mutation. + ///If you need to update the location managed by the fulfillment service (for example, to change the address of a fulfillment service), use the [LocationEdit](https://shopify.dev/api/admin-graphql/latest/mutations/locationEdit) mutation. /// - [Description("Updates a fulfillment service.\n\nIf you are using API version `2023-10` or later,\nand you need to update the location managed by the fulfillment service\n(for example, to change the address of a fulfillment service),\nuse the\n[LocationEdit](https://shopify.dev/api/admin-graphql/latest/mutations/locationEdit)\nmutation.")] + [Description("Updates a fulfillment service.\n\nIf you need to update the location managed by the fulfillment service (for example, to change the address of a fulfillment service), use the [LocationEdit](https://shopify.dev/api/admin-graphql/latest/mutations/locationEdit) mutation.")] public FulfillmentServiceUpdatePayload? fulfillmentServiceUpdate { get; set; } /// @@ -61783,15 +62622,15 @@ public class Mutation : GraphQLObject, IMutationRoot public PrivacyFeaturesDisablePayload? privacyFeaturesDisable { get; set; } /// - ///Creates a new componentized product. + ///Creates a new product bundle or componentized product. /// - [Description("Creates a new componentized product.")] + [Description("Creates a new product bundle or componentized product.")] public ProductBundleCreatePayload? productBundleCreate { get; set; } /// - ///Updates a componentized product. + ///Updates a product bundle or componentized product. /// - [Description("Updates a componentized product.")] + [Description("Updates a product bundle or componentized product.")] public ProductBundleUpdatePayload? productBundleUpdate { get; set; } /// @@ -62017,9 +62856,7 @@ public class Mutation : GraphQLObject, IMutationRoot ///> Note: ///> The `productOptionsCreate` 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. - ///If you use the [`CREATE` variant strategy](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productOptionsCreate#arguments-variantStrategy.enums.CREATE), consider the maximum allowed number of variants for each product - ///(100 by default, and 2,048 if you've - ///[enabled the **Extended Variants** developer preview](https://shopify.dev/docs/apps/build/graphql/migrate/new-product-model/migrate-and-test#create-a-development-store-that-allows-2-048-variants-per-product)). + ///If you use the [`CREATE` variant strategy](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productOptionsCreate#arguments-variantStrategy.enums.CREATE), consider the maximum allowed number of variants for each product is 2048. /// ///After you create product options, you can further manage a product's configuration using related mutations: /// @@ -62033,7 +62870,7 @@ public class Mutation : GraphQLObject, IMutationRoot ///Learn more about the [product model](https://shopify.dev/docs/apps/build/graphql/migrate/new-product-model) ///and [adding product data](https://shopify.dev/docs/apps/build/graphql/migrate/new-product-model/add-data). /// - [Description("Creates one or more [options](https://shopify.dev/docs/api/admin-graphql/latest/objects/ProductOption)\non a [product](https://shopify.dev/docs/api/admin-graphql/latest/objects/Product),\nsuch as size, color, or material. Each option includes a name, position, and a list of values. The combination\nof a product option and value creates a [product variant](https://shopify.dev/docs/api/admin-graphql/latest/objects/ProductVariant).\n\nUse the `productOptionsCreate` mutation for the following use cases:\n\n- **Add product choices**: Add a new option, like \"Size\" (Small, Medium, Large) or\n\"Color\" (Red, Blue, Green), to an existing product so customers can select their preferred variant.\n- **Enable personalization features**: Add options such as \"Engraving text\" to let customers customize their purchase.\n- **Offer seasonal or limited edition products**: Add a new value\n(for example, \"Holiday red\") to an existing option to support limited-time or seasonal variants.\n- **Integrate with apps that manage product configuration**: Allow third-party apps to add options, like\n\"Bundle size\", when customers select or customize\n[product bundles](https://shopify.dev/docs/apps/build/product-merchandising/bundles).\n- **Link options to metafields**: Associate a product option with a custom\n[metafield](https://shopify.dev/docs/apps/build/custom-data), like \"Fabric code\", for\nricher integrations with other systems or apps.\n\n> Note:\n> The `productOptionsCreate` mutation enforces strict data integrity for product options and variants.\nAll option positions must be sequential, and every option should be used by at least one variant.\nIf you use the [`CREATE` variant strategy](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productOptionsCreate#arguments-variantStrategy.enums.CREATE), consider the maximum allowed number of variants for each product\n(100 by default, and 2,048 if you've\n[enabled the **Extended Variants** developer preview](https://shopify.dev/docs/apps/build/graphql/migrate/new-product-model/migrate-and-test#create-a-development-store-that-allows-2-048-variants-per-product)).\n\nAfter you create product options, you can further manage a product's configuration using related mutations:\n\n- [`productOptionUpdate`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productOptionUpdate)\n- [`productOptionsReorder`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productOptionsReorder)\n- [`productOptionsDelete`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productOptionsDelete)\n- [`productVariantsBulkCreate`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productVariantsBulkCreate)\n- [`productVariantsBulkUpdate`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productVariantsBulkUpdate)\n- [`productSet`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productSet)\n\nLearn more about the [product model](https://shopify.dev/docs/apps/build/graphql/migrate/new-product-model)\nand [adding product data](https://shopify.dev/docs/apps/build/graphql/migrate/new-product-model/add-data).")] + [Description("Creates one or more [options](https://shopify.dev/docs/api/admin-graphql/latest/objects/ProductOption)\non a [product](https://shopify.dev/docs/api/admin-graphql/latest/objects/Product),\nsuch as size, color, or material. Each option includes a name, position, and a list of values. The combination\nof a product option and value creates a [product variant](https://shopify.dev/docs/api/admin-graphql/latest/objects/ProductVariant).\n\nUse the `productOptionsCreate` mutation for the following use cases:\n\n- **Add product choices**: Add a new option, like \"Size\" (Small, Medium, Large) or\n\"Color\" (Red, Blue, Green), to an existing product so customers can select their preferred variant.\n- **Enable personalization features**: Add options such as \"Engraving text\" to let customers customize their purchase.\n- **Offer seasonal or limited edition products**: Add a new value\n(for example, \"Holiday red\") to an existing option to support limited-time or seasonal variants.\n- **Integrate with apps that manage product configuration**: Allow third-party apps to add options, like\n\"Bundle size\", when customers select or customize\n[product bundles](https://shopify.dev/docs/apps/build/product-merchandising/bundles).\n- **Link options to metafields**: Associate a product option with a custom\n[metafield](https://shopify.dev/docs/apps/build/custom-data), like \"Fabric code\", for\nricher integrations with other systems or apps.\n\n> Note:\n> The `productOptionsCreate` mutation enforces strict data integrity for product options and variants.\nAll option positions must be sequential, and every option should be used by at least one variant.\nIf you use the [`CREATE` variant strategy](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productOptionsCreate#arguments-variantStrategy.enums.CREATE), consider the maximum allowed number of variants for each product is 2048.\n\nAfter you create product options, you can further manage a product's configuration using related mutations:\n\n- [`productOptionUpdate`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productOptionUpdate)\n- [`productOptionsReorder`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productOptionsReorder)\n- [`productOptionsDelete`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productOptionsDelete)\n- [`productVariantsBulkCreate`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productVariantsBulkCreate)\n- [`productVariantsBulkUpdate`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productVariantsBulkUpdate)\n- [`productSet`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productSet)\n\nLearn more about the [product model](https://shopify.dev/docs/apps/build/graphql/migrate/new-product-model)\nand [adding product data](https://shopify.dev/docs/apps/build/graphql/migrate/new-product-model/add-data).")] public ProductOptionsCreatePayload? productOptionsCreate { get; set; } /// @@ -62179,9 +63016,7 @@ public class Mutation : GraphQLObject, IMutationRoot ///- **For all other field types**: Updates only the included fields. Any omitted fields will remain unchanged. /// ///> Note: - ///> By default, stores have a limit of 100 product variants for each product. You can create a development store and - ///> [enable the **Extended Variants** developer preview](https://shopify.dev/docs/apps/build/graphql/migrate/new-product-model/migrate-and-test#create-a-development-store-that-allows-2-048-variants-per-product) - ///> to create or update a maximum of 2,048 product variants in a single operation. + ///> By default, stores have a limit of 2048 product variants for each product. /// ///You can run `productSet` in one of the following modes: /// @@ -62205,7 +63040,7 @@ public class Mutation : GraphQLObject, IMutationRoot /// ///Learn more about [syncing product data from an external source](https://shopify.dev/docs/apps/build/graphql/migrate/new-product-model/sync-data). /// - [Description("Performs multiple operations to create or update products in a single request.\n\nUse the `productSet` mutation to sync information from an external data source into Shopify, manage large\nproduct catalogs, and perform batch updates. The mutation is helpful for bulk product management, including price\nadjustments, inventory updates, and product lifecycle management.\n\nThe behavior of `productSet` depends on the type of field it's modifying:\n\n- **For list fields**: Creates new entries, updates existing entries, and deletes existing entries\nthat aren't included in the mutation's input. Common examples of list fields include\n[`collections`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productSet#arguments-input.fields.collections),\n[`metafields`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productSet#arguments-input.fields.metafields),\nand [`variants`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productSet#arguments-input.fields.variants).\n\n- **For all other field types**: Updates only the included fields. Any omitted fields will remain unchanged.\n\n> Note:\n> By default, stores have a limit of 100 product variants for each product. You can create a development store and\n> [enable the **Extended Variants** developer preview](https://shopify.dev/docs/apps/build/graphql/migrate/new-product-model/migrate-and-test#create-a-development-store-that-allows-2-048-variants-per-product)\n> to create or update a maximum of 2,048 product variants in a single operation.\n\nYou can run `productSet` in one of the following modes:\n\n- **Synchronously**: Returns the updated product in the response.\n- **Asynchronously**: Returns a [`ProductSetOperation`](https://shopify.dev/docs/api/admin-graphql/latest/objects/ProductSetOperation) object.\nUse the [`productOperation`](https://shopify.dev/api/admin-graphql/latest/queries/productOperation) query to check the status of the operation and\nretrieve details of the updated product and its product variants.\n\nIf you need to only manage product variants, then use one of the following mutations:\n\n- [`productVariantsBulkCreate`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productVariantsBulkCreate)\n- [`productVariantsBulkUpdate`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productVariantsBulkUpdate)\n- [`productVariantsBulkDelete`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productVariantsBulkDelete)\n\nIf you need to only manage product options, then use one of the following mutations:\n\n- [`productOptionsCreate`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productOptionsCreate)\n- [`productOptionUpdate`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productOptionUpdate)\n- [`productOptionsReorder`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productOptionsReorder)\n- [`productOptionsDelete`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productOptionsDelete)\n\nLearn more about [syncing product data from an external source](https://shopify.dev/docs/apps/build/graphql/migrate/new-product-model/sync-data).")] + [Description("Performs multiple operations to create or update products in a single request.\n\nUse the `productSet` mutation to sync information from an external data source into Shopify, manage large\nproduct catalogs, and perform batch updates. The mutation is helpful for bulk product management, including price\nadjustments, inventory updates, and product lifecycle management.\n\nThe behavior of `productSet` depends on the type of field it's modifying:\n\n- **For list fields**: Creates new entries, updates existing entries, and deletes existing entries\nthat aren't included in the mutation's input. Common examples of list fields include\n[`collections`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productSet#arguments-input.fields.collections),\n[`metafields`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productSet#arguments-input.fields.metafields),\nand [`variants`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productSet#arguments-input.fields.variants).\n\n- **For all other field types**: Updates only the included fields. Any omitted fields will remain unchanged.\n\n> Note:\n> By default, stores have a limit of 2048 product variants for each product.\n\nYou can run `productSet` in one of the following modes:\n\n- **Synchronously**: Returns the updated product in the response.\n- **Asynchronously**: Returns a [`ProductSetOperation`](https://shopify.dev/docs/api/admin-graphql/latest/objects/ProductSetOperation) object.\nUse the [`productOperation`](https://shopify.dev/api/admin-graphql/latest/queries/productOperation) query to check the status of the operation and\nretrieve details of the updated product and its product variants.\n\nIf you need to only manage product variants, then use one of the following mutations:\n\n- [`productVariantsBulkCreate`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productVariantsBulkCreate)\n- [`productVariantsBulkUpdate`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productVariantsBulkUpdate)\n- [`productVariantsBulkDelete`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productVariantsBulkDelete)\n\nIf you need to only manage product options, then use one of the following mutations:\n\n- [`productOptionsCreate`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productOptionsCreate)\n- [`productOptionUpdate`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productOptionUpdate)\n- [`productOptionsReorder`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productOptionsReorder)\n- [`productOptionsDelete`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productOptionsDelete)\n\nLearn more about [syncing product data from an external source](https://shopify.dev/docs/apps/build/graphql/migrate/new-product-model/sync-data).")] public ProductSetPayload? productSet { get; set; } /// @@ -62307,14 +63142,12 @@ public class Mutation : GraphQLObject, IMutationRoot /// ///The mutation supports: /// - ///- Creating variants with custom options and values + ///- Creating variants with custom option values ///- Associating media (for example, images, videos, and 3D models) with the product or its variants ///- Handling complex product configurations /// ///> Note: - ///> By default, stores have a limit of 100 product variants for each product. You can create a development store and - ///> [enable the **Extended Variants** developer preview](https://shopify.dev/docs/apps/build/graphql/migrate/new-product-model/migrate-and-test#create-a-development-store-that-allows-2-048-variants-per-product) - ///> to create a maximum of 2,048 product variants in a single operation. + ///> By default, stores have a limit of 2048 product variants for each product. /// ///After creating variants, you can make additional changes using one of the following mutations: /// @@ -62333,7 +63166,7 @@ public class Mutation : GraphQLObject, IMutationRoot ///Learn more about the [product model](https://shopify.dev/docs/apps/build/graphql/migrate/new-product-model) ///and [adding product data](https://shopify.dev/docs/apps/build/graphql/migrate/new-product-model/add-data). /// - [Description("Creates multiple [product variants](https://shopify.dev/docs/api/admin-graphql/latest/objects/ProductVariant)\nfor a single [product](https://shopify.dev/docs/api/admin-graphql/latest/objects/Product) in one operation.\nYou can run this mutation directly or as part of a [bulk operation](https://shopify.dev/docs/api/usage/bulk-operations/imports)\nfor large-scale catalog updates.\n\nUse the `productVariantsBulkCreate` mutation to efficiently add new product variants—such as different sizes,\ncolors, or materials—to an existing product. The mutation is helpful if you need to add product variants in bulk,\nsuch as importing from an external system.\n\nThe mutation supports:\n\n- Creating variants with custom options and values\n- Associating media (for example, images, videos, and 3D models) with the product or its variants\n- Handling complex product configurations\n\n> Note:\n> By default, stores have a limit of 100 product variants for each product. You can create a development store and\n> [enable the **Extended Variants** developer preview](https://shopify.dev/docs/apps/build/graphql/migrate/new-product-model/migrate-and-test#create-a-development-store-that-allows-2-048-variants-per-product)\n> to create a maximum of 2,048 product variants in a single operation.\n\nAfter creating variants, you can make additional changes using one of the following mutations:\n\n- [`productVariantsBulkUpdate`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productVariantsBulkUpdate):\nUpdates multiple product variants for a single product in one operation.\n- [`productSet`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productSet):\nUsed to perform multiple operations on products, such as creating or modifying product options and variants.\n\nYou can also specifically manage product options through related mutations:\n\n- [`productOptionsCreate`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productOptionsCreate)\n- [`productOptionUpdate`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productOptionUpdate)\n- [`productOptionsReorder`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productOptionsReorder)\n- [`productOptionsDelete`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productOptionsDelete)\n\nLearn more about the [product model](https://shopify.dev/docs/apps/build/graphql/migrate/new-product-model)\nand [adding product data](https://shopify.dev/docs/apps/build/graphql/migrate/new-product-model/add-data).")] + [Description("Creates multiple [product variants](https://shopify.dev/docs/api/admin-graphql/latest/objects/ProductVariant)\nfor a single [product](https://shopify.dev/docs/api/admin-graphql/latest/objects/Product) in one operation.\nYou can run this mutation directly or as part of a [bulk operation](https://shopify.dev/docs/api/usage/bulk-operations/imports)\nfor large-scale catalog updates.\n\nUse the `productVariantsBulkCreate` mutation to efficiently add new product variants—such as different sizes,\ncolors, or materials—to an existing product. The mutation is helpful if you need to add product variants in bulk,\nsuch as importing from an external system.\n\nThe mutation supports:\n\n- Creating variants with custom option values\n- Associating media (for example, images, videos, and 3D models) with the product or its variants\n- Handling complex product configurations\n\n> Note:\n> By default, stores have a limit of 2048 product variants for each product.\n\nAfter creating variants, you can make additional changes using one of the following mutations:\n\n- [`productVariantsBulkUpdate`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productVariantsBulkUpdate):\nUpdates multiple product variants for a single product in one operation.\n- [`productSet`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productSet):\nUsed to perform multiple operations on products, such as creating or modifying product options and variants.\n\nYou can also specifically manage product options through related mutations:\n\n- [`productOptionsCreate`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productOptionsCreate)\n- [`productOptionUpdate`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productOptionUpdate)\n- [`productOptionsReorder`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productOptionsReorder)\n- [`productOptionsDelete`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productOptionsDelete)\n\nLearn more about the [product model](https://shopify.dev/docs/apps/build/graphql/migrate/new-product-model)\nand [adding product data](https://shopify.dev/docs/apps/build/graphql/migrate/new-product-model/add-data).")] public ProductVariantsBulkCreatePayload? productVariantsBulkCreate { get; set; } /// @@ -62360,14 +63193,12 @@ public class Mutation : GraphQLObject, IMutationRoot /// ///The mutation supports: /// - ///- Updating variants with custom options and values + ///- Updating variants with custom option values ///- Associating media (for example, images, videos, and 3D models) with the product or its variants ///- Handling complex product configurations /// ///> Note: - ///> By default, stores have a limit of 100 product variants for each product. You can create a development store and - ///> [enable the **Extended Variants** developer preview](https://shopify.dev/docs/apps/build/graphql/migrate/new-product-model/migrate-and-test#create-a-development-store-that-allows-2-048-variants-per-product) - ///> to update a maximum of 2,048 product variants in a single operation. + ///> By default, stores have a limit of 2048 product variants for each product. /// ///After creating variants, you can make additional changes using the ///[`productSet`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productSet) mutation, @@ -62383,7 +63214,7 @@ public class Mutation : GraphQLObject, IMutationRoot ///Learn more about the [product model](https://shopify.dev/docs/apps/build/graphql/migrate/new-product-model) ///and [adding product data](https://shopify.dev/docs/apps/build/graphql/migrate/new-product-model/add-data). /// - [Description("Updates multiple [product variants](https://shopify.dev/docs/api/admin-graphql/latest/objects/ProductVariant)\nfor a single [product](https://shopify.dev/docs/api/admin-graphql/latest/objects/Product) in one operation.\nYou can run this mutation directly or as part of a [bulk operation](https://shopify.dev/docs/api/usage/bulk-operations/imports)\nfor large-scale catalog updates.\n\nUse the `productVariantsBulkUpdate` mutation to efficiently modify product variants—such as different sizes,\ncolors, or materials—associated with an existing product. The mutation is helpful if you need to update a\nproduct's variants in bulk, such as importing from an external system.\n\nThe mutation supports:\n\n- Updating variants with custom options and values\n- Associating media (for example, images, videos, and 3D models) with the product or its variants\n- Handling complex product configurations\n\n> Note:\n> By default, stores have a limit of 100 product variants for each product. You can create a development store and\n> [enable the **Extended Variants** developer preview](https://shopify.dev/docs/apps/build/graphql/migrate/new-product-model/migrate-and-test#create-a-development-store-that-allows-2-048-variants-per-product)\n> to update a maximum of 2,048 product variants in a single operation.\n\nAfter creating variants, you can make additional changes using the\n[`productSet`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productSet) mutation,\nwhich is used to perform multiple operations on products, such as creating or modifying product options and variants.\n\nYou can also specifically manage product options through related mutations:\n\n- [`productOptionsCreate`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productOptionsCreate)\n- [`productOptionUpdate`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productOptionUpdate)\n- [`productOptionsReorder`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productOptionsReorder)\n- [`productOptionsDelete`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productOptionsDelete)\n\nLearn more about the [product model](https://shopify.dev/docs/apps/build/graphql/migrate/new-product-model)\nand [adding product data](https://shopify.dev/docs/apps/build/graphql/migrate/new-product-model/add-data).")] + [Description("Updates multiple [product variants](https://shopify.dev/docs/api/admin-graphql/latest/objects/ProductVariant)\nfor a single [product](https://shopify.dev/docs/api/admin-graphql/latest/objects/Product) in one operation.\nYou can run this mutation directly or as part of a [bulk operation](https://shopify.dev/docs/api/usage/bulk-operations/imports)\nfor large-scale catalog updates.\n\nUse the `productVariantsBulkUpdate` mutation to efficiently modify product variants—such as different sizes,\ncolors, or materials—associated with an existing product. The mutation is helpful if you need to update a\nproduct's variants in bulk, such as importing from an external system.\n\nThe mutation supports:\n\n- Updating variants with custom option values\n- Associating media (for example, images, videos, and 3D models) with the product or its variants\n- Handling complex product configurations\n\n> Note:\n> By default, stores have a limit of 2048 product variants for each product.\n\nAfter creating variants, you can make additional changes using the\n[`productSet`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productSet) mutation,\nwhich is used to perform multiple operations on products, such as creating or modifying product options and variants.\n\nYou can also specifically manage product options through related mutations:\n\n- [`productOptionsCreate`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productOptionsCreate)\n- [`productOptionUpdate`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productOptionUpdate)\n- [`productOptionsReorder`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productOptionsReorder)\n- [`productOptionsDelete`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productOptionsDelete)\n\nLearn more about the [product model](https://shopify.dev/docs/apps/build/graphql/migrate/new-product-model)\nand [adding product data](https://shopify.dev/docs/apps/build/graphql/migrate/new-product-model/add-data).")] public ProductVariantsBulkUpdatePayload? productVariantsBulkUpdate { get; set; } /// @@ -63169,6 +64000,12 @@ public class Mutation : GraphQLObject, IMutationRoot [Description("Deletes a theme.")] public ThemeDeletePayload? themeDelete { get; set; } + /// + ///Duplicates a theme. + /// + [Description("Duplicates a theme.")] + public ThemeDuplicatePayload? themeDuplicate { get; set; } + /// ///Copy theme files. Copying to existing theme files will overwrite them. /// @@ -63345,27 +64182,73 @@ public class Mutation : GraphQLObject, IMutationRoot public WebPresenceUpdatePayload? webPresenceUpdate { get; set; } /// - ///Creates a new webhook subscription. + ///Set up webhook subscriptions so your app gets notified instantly when things happen in a merchant's store. Instead of constantly checking for changes, webhooks push updates to your app the moment they occur, making integrations faster and more efficient. + /// + ///For example, an inventory management app might create subscriptions for `orders/paid` and `inventory_levels/update` events to automatically adjust stock levels and trigger fulfillment processes when customers complete purchases. + /// + ///Use `webhookSubscriptionCreate` to: + ///- Set up real-time event notifications for your app + ///- Configure specific topics like order creation, product updates, or customer changes + ///- Define endpoint destinations (HTTPS, EventBridge, or Pub/Sub) + ///- Filter events using Shopify search syntax to receive notifications only for relevant events + ///- Configure field inclusion to control which data fields are included in webhook payloads + /// + ///The mutation supports multiple endpoint types and advanced filtering options, allowing you to create precisely targeted webhook subscriptions that match your app's integration needs. The API version is inherited from the app configuration and cannot be specified per subscription. Filters use Shopify search syntax to determine which events trigger notifications. + /// + ///Successful creation returns the webhook subscription fields that you request in your query. The mutation validates topic availability, filter syntax, and endpoint configuration. + /// + ///Learn more about [creating webhook subscriptions](https://shopify.dev/docs/apps/build/webhooks/subscribe). + /// /// ///Building an app? If you only use app-specific webhooks, you won't need this. App-specific webhook subscriptions specified in your `shopify.app.toml` may be easier. They are automatically kept up to date by Shopify & require less maintenance. Please read [About managing webhook subscriptions](https://shopify.dev/docs/apps/build/webhooks/subscribe). /// - [Description("Creates a new webhook subscription.\n\nBuilding an app? If you only use app-specific webhooks, you won't need this. App-specific webhook subscriptions specified in your `shopify.app.toml` may be easier. They are automatically kept up to date by Shopify & require less maintenance. Please read [About managing webhook subscriptions](https://shopify.dev/docs/apps/build/webhooks/subscribe).")] + [Description("Set up webhook subscriptions so your app gets notified instantly when things happen in a merchant's store. Instead of constantly checking for changes, webhooks push updates to your app the moment they occur, making integrations faster and more efficient.\n\nFor example, an inventory management app might create subscriptions for `orders/paid` and `inventory_levels/update` events to automatically adjust stock levels and trigger fulfillment processes when customers complete purchases.\n\nUse `webhookSubscriptionCreate` to:\n- Set up real-time event notifications for your app\n- Configure specific topics like order creation, product updates, or customer changes\n- Define endpoint destinations (HTTPS, EventBridge, or Pub/Sub)\n- Filter events using Shopify search syntax to receive notifications only for relevant events\n- Configure field inclusion to control which data fields are included in webhook payloads\n\nThe mutation supports multiple endpoint types and advanced filtering options, allowing you to create precisely targeted webhook subscriptions that match your app's integration needs. The API version is inherited from the app configuration and cannot be specified per subscription. Filters use Shopify search syntax to determine which events trigger notifications.\n\nSuccessful creation returns the webhook subscription fields that you request in your query. The mutation validates topic availability, filter syntax, and endpoint configuration.\n\nLearn more about [creating webhook subscriptions](https://shopify.dev/docs/apps/build/webhooks/subscribe).\n\n\nBuilding an app? If you only use app-specific webhooks, you won't need this. App-specific webhook subscriptions specified in your `shopify.app.toml` may be easier. They are automatically kept up to date by Shopify & require less maintenance. Please read [About managing webhook subscriptions](https://shopify.dev/docs/apps/build/webhooks/subscribe).")] public WebhookSubscriptionCreatePayload? webhookSubscriptionCreate { get; set; } /// - ///Deletes a webhook subscription. + ///Removes an existing webhook subscription, stopping all future event notifications for that subscription. This mutation provides a clean way to deactivate webhooks when they're no longer needed. + /// + ///For example, when an app feature is disabled or when you need to change webhook configurations, you can delete + ///the old webhook subscription to prevent unnecessary event delivery and potential errors. Alternatively, for + ///endpoint changes, you might consider updating the existing subscription instead of deleting and recreating it. + /// + ///Use `webhookSubscriptionDelete` to: + ///- Clean up unused webhook subscriptions + ///- Stop event delivery to deprecated endpoints + ///- Remove subscriptions during app uninstallation + ///- Reduce unnecessary resource usage by removing unused subscriptions + /// + ///The mutation returns the deleted subscription's ID for confirmation when successful. Validation errors are included in the response if you request them in your query, as with all GraphQL mutations. + /// + ///Learn more about [managing webhook subscriptions](https://shopify.dev/docs/apps/build/webhooks/subscribe). + /// /// ///Building an app? If you only use app-specific webhooks, you won't need this. App-specific webhook subscriptions specified in your `shopify.app.toml` may be easier. They are automatically kept up to date by Shopify & require less maintenance. Please read [About managing webhook subscriptions](https://shopify.dev/docs/apps/build/webhooks/subscribe). /// - [Description("Deletes a webhook subscription.\n\nBuilding an app? If you only use app-specific webhooks, you won't need this. App-specific webhook subscriptions specified in your `shopify.app.toml` may be easier. They are automatically kept up to date by Shopify & require less maintenance. Please read [About managing webhook subscriptions](https://shopify.dev/docs/apps/build/webhooks/subscribe).")] + [Description("Removes an existing webhook subscription, stopping all future event notifications for that subscription. This mutation provides a clean way to deactivate webhooks when they're no longer needed.\n\nFor example, when an app feature is disabled or when you need to change webhook configurations, you can delete\nthe old webhook subscription to prevent unnecessary event delivery and potential errors. Alternatively, for\nendpoint changes, you might consider updating the existing subscription instead of deleting and recreating it.\n\nUse `webhookSubscriptionDelete` to:\n- Clean up unused webhook subscriptions\n- Stop event delivery to deprecated endpoints\n- Remove subscriptions during app uninstallation\n- Reduce unnecessary resource usage by removing unused subscriptions\n\nThe mutation returns the deleted subscription's ID for confirmation when successful. Validation errors are included in the response if you request them in your query, as with all GraphQL mutations.\n\nLearn more about [managing webhook subscriptions](https://shopify.dev/docs/apps/build/webhooks/subscribe).\n\n\nBuilding an app? If you only use app-specific webhooks, you won't need this. App-specific webhook subscriptions specified in your `shopify.app.toml` may be easier. They are automatically kept up to date by Shopify & require less maintenance. Please read [About managing webhook subscriptions](https://shopify.dev/docs/apps/build/webhooks/subscribe).")] public WebhookSubscriptionDeletePayload? webhookSubscriptionDelete { get; set; } /// - ///Updates a webhook subscription. + ///Updates an existing webhook subscription's configuration, allowing you to modify endpoints, topics, filters, and other subscription settings without recreating the entire subscription. This mutation provides flexible webhook management for evolving app requirements. + /// + ///For example, when migrating from HTTP endpoints to EventBridge, you can update the subscription's endpoint configuration while preserving the same topic subscriptions and filters, ensuring continuity of event delivery during infrastructure changes. + /// + ///Use `webhookSubscriptionUpdate` to: + ///- Change webhook endpoint URLs or destination types + ///- Modify event filtering criteria to refine event relevance + ///- Adjust field inclusion settings to optimize payload sizes + ///- Configure metafield namespace access for extended data + /// + ///The mutation supports comprehensive configuration changes including endpoint type switching (HTTP to Pub/Sub, for instance), topic modifications, and advanced filtering updates. The API version is inherited from the app configuration and cannot be changed per subscription. + /// + ///Updates are applied atomically, ensuring that webhook delivery continues uninterrupted during configuration changes. The response includes the updated subscription fields that you request in your query, and validation errors if requested. + /// + ///Learn more about [updating webhook configurations](https://shopify.dev/docs/apps/build/webhooks/subscribe). + /// /// ///Building an app? If you only use app-specific webhooks, you won't need this. App-specific webhook subscriptions specified in your `shopify.app.toml` may be easier. They are automatically kept up to date by Shopify & require less maintenance. Please read [About managing webhook subscriptions](https://shopify.dev/docs/apps/build/webhooks/subscribe). /// - [Description("Updates a webhook subscription.\n\nBuilding an app? If you only use app-specific webhooks, you won't need this. App-specific webhook subscriptions specified in your `shopify.app.toml` may be easier. They are automatically kept up to date by Shopify & require less maintenance. Please read [About managing webhook subscriptions](https://shopify.dev/docs/apps/build/webhooks/subscribe).")] + [Description("Updates an existing webhook subscription's configuration, allowing you to modify endpoints, topics, filters, and other subscription settings without recreating the entire subscription. This mutation provides flexible webhook management for evolving app requirements.\n\nFor example, when migrating from HTTP endpoints to EventBridge, you can update the subscription's endpoint configuration while preserving the same topic subscriptions and filters, ensuring continuity of event delivery during infrastructure changes.\n\nUse `webhookSubscriptionUpdate` to:\n- Change webhook endpoint URLs or destination types\n- Modify event filtering criteria to refine event relevance\n- Adjust field inclusion settings to optimize payload sizes\n- Configure metafield namespace access for extended data\n\nThe mutation supports comprehensive configuration changes including endpoint type switching (HTTP to Pub/Sub, for instance), topic modifications, and advanced filtering updates. The API version is inherited from the app configuration and cannot be changed per subscription.\n\nUpdates are applied atomically, ensuring that webhook delivery continues uninterrupted during configuration changes. The response includes the updated subscription fields that you request in your query, and validation errors if requested.\n\nLearn more about [updating webhook configurations](https://shopify.dev/docs/apps/build/webhooks/subscribe).\n\n\nBuilding an app? If you only use app-specific webhooks, you won't need this. App-specific webhook subscriptions specified in your `shopify.app.toml` may be easier. They are automatically kept up to date by Shopify & require less maintenance. Please read [About managing webhook subscriptions](https://shopify.dev/docs/apps/build/webhooks/subscribe).")] public WebhookSubscriptionUpdatePayload? webhookSubscriptionUpdate { get; set; } } @@ -63590,6 +64473,7 @@ public class NavigationItem : GraphQLObject [JsonDerivedType(typeof(Order), typeDiscriminator: "Order")] [JsonDerivedType(typeof(OrderAdjustment), typeDiscriminator: "OrderAdjustment")] [JsonDerivedType(typeof(OrderDisputeSummary), typeDiscriminator: "OrderDisputeSummary")] + [JsonDerivedType(typeof(OrderEditSession), typeDiscriminator: "OrderEditSession")] [JsonDerivedType(typeof(OrderTransaction), typeDiscriminator: "OrderTransaction")] [JsonDerivedType(typeof(Page), typeDiscriminator: "Page")] [JsonDerivedType(typeof(PaymentCustomization), typeDiscriminator: "PaymentCustomization")] @@ -63786,6 +64670,7 @@ public interface INode : IGraphQLObject public Order? AsOrder() => this as Order; public OrderAdjustment? AsOrderAdjustment() => this as OrderAdjustment; public OrderDisputeSummary? AsOrderDisputeSummary() => this as OrderDisputeSummary; + public OrderEditSession? AsOrderEditSession() => this as OrderEditSession; public OrderTransaction? AsOrderTransaction() => this as OrderTransaction; public Page? AsPage() => this as Page; public PaymentCustomization? AsPaymentCustomization() => this as PaymentCustomization; @@ -65175,6 +66060,13 @@ public class Order : GraphQLObject, ICommentEventSubject, IHasEvents, IHa [NonNull] public DateTime? processedAt { get; set; } + /// + ///Whether the customer also purchased items from other stores in the network. + /// + [Description("Whether the customer also purchased items from other stores in the network.")] + [NonNull] + public bool? productNetwork { get; set; } + /// ///The sales channel that the order was created from, such as the [Online Store](https://shopify.dev/docs/apps/build/app-surfaces#online-store) or [Shopify POS](https://shopify.dev/docs/apps/build/app-surfaces#point-of-sale). /// @@ -66981,6 +67873,12 @@ public class OrderEditAddCustomItemPayload : GraphQLObject + ///The order edit session with the edits applied but not saved. + /// + [Description("The order edit session with the edits applied but not saved.")] + public OrderEditSession? orderEditSession { get; set; } + /// ///The list of errors that occurred from executing the mutation. /// @@ -67013,6 +67911,12 @@ public class OrderEditAddLineItemDiscountPayload : GraphQLObject + ///The order edit session with the edits applied but not saved. + /// + [Description("The order edit session with the edits applied but not saved.")] + public OrderEditSession? orderEditSession { get; set; } + /// ///The list of errors that occurred from executing the mutation. /// @@ -67041,6 +67945,12 @@ public class OrderEditAddShippingLinePayload : GraphQLObject + ///The order edit session with the edits applied but not saved. + /// + [Description("The order edit session with the edits applied but not saved.")] + public OrderEditSession? orderEditSession { get; set; } + /// ///The list of errors that occurred from executing the mutation. /// @@ -67114,6 +68024,12 @@ public class OrderEditAddVariantPayload : GraphQLObject + ///The order edit session with the edits applied but not saved. + /// + [Description("The order edit session with the edits applied but not saved.")] + public OrderEditSession? orderEditSession { get; set; } + /// ///The list of errors that occurred from executing the mutation. /// @@ -67182,6 +68098,12 @@ public class OrderEditBeginPayload : GraphQLObject [Description("The order that will be edited.")] public CalculatedOrder? calculatedOrder { get; set; } + /// + ///The order edit session that was created. + /// + [Description("The order edit session that was created.")] + public OrderEditSession? orderEditSession { get; set; } + /// ///The list of errors that occurred from executing the mutation. /// @@ -67202,6 +68124,12 @@ public class OrderEditCommitPayload : GraphQLObject [Description("The order with changes applied.")] public Order? order { get; set; } + /// + ///Messages to display to the user after the staged changes are commmitted. + /// + [Description("Messages to display to the user after the staged changes are commmitted.")] + public IEnumerable? successMessages { get; set; } + /// ///The list of errors that occurred from executing the mutation. /// @@ -67222,6 +68150,12 @@ public class OrderEditRemoveDiscountPayload : GraphQLObject + ///The order edit session with the edits applied but not saved. + /// + [Description("The order edit session with the edits applied but not saved.")] + public OrderEditSession? orderEditSession { get; set; } + /// ///The list of errors that occurred from executing the mutation. /// @@ -67293,6 +68227,12 @@ public class OrderEditRemoveLineItemDiscountPayload : GraphQLObject + ///The order edit session with the edits applied but not saved. + /// + [Description("The order edit session with the edits applied but not saved.")] + public OrderEditSession? orderEditSession { get; set; } + /// ///The list of errors that occurred from executing the mutation. /// @@ -67314,6 +68254,12 @@ public class OrderEditRemoveShippingLinePayload : GraphQLObject + ///The order edit session with the edits applied but not saved. + /// + [Description("The order edit session with the edits applied but not saved.")] + public OrderEditSession? orderEditSession { get; set; } + /// ///The list of errors that occurred from executing the mutation. /// @@ -67367,6 +68313,20 @@ public static class OrderEditRemoveShippingLineUserErrorCodeStringValues public const string INVALID = @"INVALID"; } + /// + ///An edit session for an order. + /// + [Description("An edit session for an order.")] + public class OrderEditSession : GraphQLObject, INode + { + /// + ///The unique ID of the order edit session. + /// + [Description("The unique ID of the order edit session.")] + [NonNull] + public string? id { get; set; } + } + /// ///Return type for `orderEditSetQuantity` mutation. /// @@ -67385,6 +68345,12 @@ public class OrderEditSetQuantityPayload : GraphQLObject + ///The order edit session with the edits applied but not saved. + /// + [Description("The order edit session with the edits applied but not saved.")] + public OrderEditSession? orderEditSession { get; set; } + /// ///The list of errors that occurred from executing the mutation. /// @@ -67405,6 +68371,12 @@ public class OrderEditUpdateDiscountPayload : GraphQLObject + ///The order edit session with the edits applied but not saved. + /// + [Description("The order edit session with the edits applied but not saved.")] + public OrderEditSession? orderEditSession { get; set; } + /// ///The list of errors that occurred from executing the mutation. /// @@ -67470,6 +68442,12 @@ public class OrderEditUpdateShippingLinePayload : GraphQLObject + ///The order edit session with the edits applied but not saved. + /// + [Description("The order edit session with the edits applied but not saved.")] + public OrderEditSession? orderEditSession { get; set; } + /// ///The list of errors that occurred from executing the mutation. /// @@ -68077,6 +69055,11 @@ public enum OrderSortKeys [Description("Sorts by the date and time the order was created.")] CREATED_AT, /// + ///Sorts by the current total price of an order in the shop currency, including any returns/refunds/removals. + /// + [Description("Sorts by the current total price of an order in the shop currency, including any returns/refunds/removals.")] + CURRENT_TOTAL_PRICE, + /// ///Sorts by the customer's name. /// [Description("Sorts by the customer's name.")] @@ -68142,6 +69125,7 @@ public enum OrderSortKeys public static class OrderSortKeysStringValues { public const string CREATED_AT = @"CREATED_AT"; + public const string CURRENT_TOTAL_PRICE = @"CURRENT_TOTAL_PRICE"; public const string CUSTOMER_NAME = @"CUSTOMER_NAME"; public const string DESTINATION = @"DESTINATION"; public const string FINANCIAL_STATUS = @"FINANCIAL_STATUS"; @@ -68167,6 +69151,7 @@ public static class OrderSortKeysStringValues [JsonDerivedType(typeof(OrderStagedChangeAddVariant), typeDiscriminator: "OrderStagedChangeAddVariant")] [JsonDerivedType(typeof(OrderStagedChangeDecrementItem), typeDiscriminator: "OrderStagedChangeDecrementItem")] [JsonDerivedType(typeof(OrderStagedChangeIncrementItem), typeDiscriminator: "OrderStagedChangeIncrementItem")] + [JsonDerivedType(typeof(OrderStagedChangeRemoveDiscount), typeDiscriminator: "OrderStagedChangeRemoveDiscount")] [JsonDerivedType(typeof(OrderStagedChangeRemoveShippingLine), typeDiscriminator: "OrderStagedChangeRemoveShippingLine")] public interface IOrderStagedChange : IGraphQLObject { @@ -68176,6 +69161,7 @@ public interface IOrderStagedChange : IGraphQLObject public OrderStagedChangeAddVariant? AsOrderStagedChangeAddVariant() => this as OrderStagedChangeAddVariant; public OrderStagedChangeDecrementItem? AsOrderStagedChangeDecrementItem() => this as OrderStagedChangeDecrementItem; public OrderStagedChangeIncrementItem? AsOrderStagedChangeIncrementItem() => this as OrderStagedChangeIncrementItem; + public OrderStagedChangeRemoveDiscount? AsOrderStagedChangeRemoveDiscount() => this as OrderStagedChangeRemoveDiscount; public OrderStagedChangeRemoveShippingLine? AsOrderStagedChangeRemoveShippingLine() => this as OrderStagedChangeRemoveShippingLine; } @@ -68389,6 +69375,20 @@ public class OrderStagedChangeIncrementItem : GraphQLObject + ///A discount application removed during an order edit. + /// + [Description("A discount application removed during an order edit.")] + public class OrderStagedChangeRemoveDiscount : GraphQLObject, IOrderStagedChange + { + /// + ///The removed discount application. + /// + [Description("The removed discount application.")] + [NonNull] + public IDiscountApplication? discountApplication { get; set; } + } + /// ///A shipping line removed during an order edit. /// @@ -69808,6 +70808,16 @@ public enum PaymentCustomizationErrorCode /// [Description("Function ID cannot be changed.")] FUNCTION_ID_CANNOT_BE_CHANGED, + /// + ///Either function_id or function_handle must be provided. + /// + [Description("Either function_id or function_handle must be provided.")] + MISSING_FUNCTION_IDENTIFIER, + /// + ///Only one of function_id or function_handle can be provided, not both. + /// + [Description("Only one of function_id or function_handle can be provided, not both.")] + MULTIPLE_FUNCTION_IDENTIFIERS, } public static class PaymentCustomizationErrorCodeStringValues @@ -69823,6 +70833,8 @@ public static class PaymentCustomizationErrorCodeStringValues public const string REQUIRED_INPUT_FIELD = @"REQUIRED_INPUT_FIELD"; public const string INVALID_METAFIELDS = @"INVALID_METAFIELDS"; public const string FUNCTION_ID_CANNOT_BE_CHANGED = @"FUNCTION_ID_CANNOT_BE_CHANGED"; + public const string MISSING_FUNCTION_IDENTIFIER = @"MISSING_FUNCTION_IDENTIFIER"; + public const string MULTIPLE_FUNCTION_IDENTIFIERS = @"MULTIPLE_FUNCTION_IDENTIFIERS"; } /// @@ -69908,6 +70920,77 @@ public class PaymentMandate : GraphQLObject, INode public IPaymentInstrument? paymentInstrument { get; set; } } + /// + ///A payment mandate with resource information, representing the permission + ///the owner of the payment instrument gives to the merchant to debit it + ///for specific resources (e.g., Order, Subscriptions). + /// + [Description("A payment mandate with resource information, representing the permission\nthe owner of the payment instrument gives to the merchant to debit it\nfor specific resources (e.g., Order, Subscriptions).")] + public class PaymentMandateResource : GraphQLObject + { + /// + ///The ID of the resource that this payment method was created for. + /// + [Description("The ID of the resource that this payment method was created for.")] + public string? resourceId { get; set; } + + /// + ///The resource type that this payment method was created for (e.g., Order, Subscriptions). + /// + [Description("The resource type that this payment method was created for (e.g., Order, Subscriptions).")] + [EnumType(typeof(MandateResourceType))] + public string? resourceType { get; set; } + } + + /// + ///An auto-generated type for paginating through multiple PaymentMandateResources. + /// + [Description("An auto-generated type for paginating through multiple PaymentMandateResources.")] + public class PaymentMandateResourceConnection : GraphQLObject, IConnectionWithNodesAndEdges + { + /// + ///The connection between the node and its parent. Each edge contains a minimum of the edge's cursor and the node. + /// + [Description("The connection between the node and its parent. Each edge contains a minimum of the edge's cursor and the node.")] + [NonNull] + public IEnumerable? edges { get; set; } + + /// + ///A list of nodes that are contained in PaymentMandateResourceEdge. You can fetch data about an individual node, or you can follow the edges to fetch data about a collection of related nodes. At each node, you specify the fields that you want to retrieve. + /// + [Description("A list of nodes that are contained in PaymentMandateResourceEdge. You can fetch data about an individual node, or you can follow the edges to fetch data about a collection of related nodes. At each node, you specify the fields that you want to retrieve.")] + [NonNull] + public IEnumerable? nodes { get; set; } + + /// + ///An object that’s used to retrieve [cursor information](https://shopify.dev/api/usage/pagination-graphql) about the current page. + /// + [Description("An object that’s used to retrieve [cursor information](https://shopify.dev/api/usage/pagination-graphql) about the current page.")] + [NonNull] + public PageInfo? pageInfo { get; set; } + } + + /// + ///An auto-generated type which holds one PaymentMandateResource and a cursor during pagination. + /// + [Description("An auto-generated type which holds one PaymentMandateResource and a cursor during pagination.")] + public class PaymentMandateResourceEdge : GraphQLObject, IEdge + { + /// + ///The position of each node in an array, used in [pagination](https://shopify.dev/api/usage/pagination-graphql). + /// + [Description("The position of each node in an array, used in [pagination](https://shopify.dev/api/usage/pagination-graphql).")] + [NonNull] + public string? cursor { get; set; } + + /// + ///The item at the end of PaymentMandateResourceEdge. + /// + [Description("The item at the end of PaymentMandateResourceEdge.")] + [NonNull] + public PaymentMandateResource? node { get; set; } + } + /// ///Some of the payment methods used in Shopify. /// @@ -70063,12 +71146,26 @@ public class PaymentSchedule : GraphQLObject, INode [NonNull] public MoneyV2? amount { get; set; } + /// + ///Remaining balance to be captured for this payment schedule. + /// + [Description("Remaining balance to be captured for this payment schedule.")] + [NonNull] + public MoneyV2? balanceDue { get; set; } + /// ///Date and time when the payment schedule is paid or fulfilled. /// [Description("Date and time when the payment schedule is paid or fulfilled.")] public DateTime? completedAt { get; set; } + /// + ///Whether the payment schedule is due. + /// + [Description("Whether the payment schedule is due.")] + [NonNull] + public bool? due { get; set; } + /// ///Date and time when the payment schedule is due. /// @@ -70094,6 +71191,13 @@ public class PaymentSchedule : GraphQLObject, INode [Description("The payment terms the payment schedule belongs to.")] [NonNull] public PaymentTerms? paymentTerms { get; set; } + + /// + ///Remaining balance to be paid or authorized by the customer for this payment schedule. + /// + [Description("Remaining balance to be paid or authorized by the customer for this payment schedule.")] + [NonNull] + public MoneyV2? totalBalance { get; set; } } /// @@ -70171,6 +71275,13 @@ public class PaymentTerms : GraphQLObject, INode [Description("The draft order associated with the payment terms.")] public DraftOrder? draftOrder { get; set; } + /// + ///Whether payment terms have a payment schedule that's due. + /// + [Description("Whether payment terms have a payment schedule that's due.")] + [NonNull] + public bool? due { get; set; } + /// ///Duration of payment terms in days based on the payment terms template used to create the payment terms. /// @@ -74786,9 +75897,9 @@ public class Product : GraphQLObject, IHasEvents, IHasMetafieldDefiniti /// ///A list of [variants](https://shopify.dev/docs/api/admin-graphql/latest/objects/ProductVariant) associated with the product. - ///If querying a single product at the root, you can fetch up to 2000 variants. + ///If querying a single product at the root, you can fetch up to 2048 variants. /// - [Description("A list of [variants](https://shopify.dev/docs/api/admin-graphql/latest/objects/ProductVariant) associated with the product.\nIf querying a single product at the root, you can fetch up to 2000 variants.")] + [Description("A list of [variants](https://shopify.dev/docs/api/admin-graphql/latest/objects/ProductVariant) associated with the product.\nIf querying a single product at the root, you can fetch up to 2048 variants.")] [NonNull] public ProductVariantConnection? variants { get; set; } @@ -75044,9 +76155,9 @@ public class ProductBundleComponentQuantityOptionValue : GraphQLObject { /// - ///The asynchronous ProductBundleOperation creating the componentized product. + ///The asynchronous ProductBundleOperation creating the product bundle or componentized product. /// - [Description("The asynchronous ProductBundleOperation creating the componentized product.")] + [Description("The asynchronous ProductBundleOperation creating the product bundle or componentized product.")] public ProductBundleOperation? productBundleOperation { get; set; } /// @@ -75174,9 +76285,9 @@ public class ProductBundleOperation : GraphQLObject, INo public class ProductBundleUpdatePayload : GraphQLObject { /// - ///The asynchronous ProductBundleOperation updating the componentized product. + ///The asynchronous ProductBundleOperation updating the product bundle or componentized product. /// - [Description("The asynchronous ProductBundleOperation updating the componentized product.")] + [Description("The asynchronous ProductBundleOperation updating the product bundle or componentized product.")] public ProductBundleOperation? productBundleOperation { get; set; } /// @@ -77808,6 +78919,11 @@ public enum ProductSetUserErrorCode /// [Description("Handle already in use. Please provide a new handle.")] HANDLE_NOT_UNIQUE, + /// + ///Inventory quantity input exceeds the limit of 50000. Consider using separate `inventorySetQuantities` mutations. + /// + [Description("Inventory quantity input exceeds the limit of 50000. Consider using separate `inventorySetQuantities` mutations.")] + INVENTORY_QUANTITIES_LIMIT_EXCEEDED, } public static class ProductSetUserErrorCodeStringValues @@ -77847,6 +78963,7 @@ public static class ProductSetUserErrorCodeStringValues public const string LINKED_METAFIELD_DEFINITION_NOT_FOUND = @"LINKED_METAFIELD_DEFINITION_NOT_FOUND"; public const string DUPLICATED_VALUE = @"DUPLICATED_VALUE"; public const string HANDLE_NOT_UNIQUE = @"HANDLE_NOT_UNIQUE"; + public const string INVENTORY_QUANTITIES_LIMIT_EXCEEDED = @"INVENTORY_QUANTITIES_LIMIT_EXCEEDED"; } /// @@ -77937,6 +79054,11 @@ public enum ProductStatus /// [Description("The product isn't ready to sell and is unavailable to customers on sales channels and apps. By default, duplicated and unarchived products are set to draft.")] DRAFT, + /// + ///The product is active but you need a direct link to view it. The product doesn't show up in search, collections, or product recommendations. It will be returned in Storefront API and Liquid only when referenced individually by handle, id, or metafield reference.This status is only visible from 2025-10 and up, is translated to active in older versions and can't be changed from unlisted in older versions. + /// + [Description("The product is active but you need a direct link to view it. The product doesn't show up in search, collections, or product recommendations. It will be returned in Storefront API and Liquid only when referenced individually by handle, id, or metafield reference.This status is only visible from 2025-10 and up, is translated to active in older versions and can't be changed from unlisted in older versions.")] + UNLISTED, } public static class ProductStatusStringValues @@ -77944,6 +79066,7 @@ public static class ProductStatusStringValues public const string ACTIVE = @"ACTIVE"; public const string ARCHIVED = @"ARCHIVED"; public const string DRAFT = @"DRAFT"; + public const string UNLISTED = @"UNLISTED"; } /// @@ -78172,6 +79295,7 @@ public class ProductVariant : GraphQLObject, IHasEvents, IHasMet ///The featured image for the variant. /// [Description("The featured image for the variant.")] + [Obsolete("Use `media` instead.")] public Image? image { get; set; } /// @@ -79068,12 +80192,18 @@ public enum ProductVariantsBulkCreateStrategy /// [Description("Deletes the existing standalone variant when the product has only a single default (\"Default Title\") or custom variant.")] REMOVE_STANDALONE_VARIANT, + /// + ///Preserves the existing standalone variant when the product has only a single default ("Default Title") or a single custom variant. + /// + [Description("Preserves the existing standalone variant when the product has only a single default (\"Default Title\") or a single custom variant.")] + PRESERVE_STANDALONE_VARIANT, } public static class ProductVariantsBulkCreateStrategyStringValues { public const string DEFAULT = @"DEFAULT"; public const string REMOVE_STANDALONE_VARIANT = @"REMOVE_STANDALONE_VARIANT"; + public const string PRESERVE_STANDALONE_VARIANT = @"PRESERVE_STANDALONE_VARIANT"; } /// @@ -79199,6 +80329,11 @@ public enum ProductVariantsBulkCreateUserErrorCode /// [Description("Cannot set name for an option value linked to a metafield.")] CANNOT_SET_NAME_FOR_LINKED_OPTION_VALUE, + /// + ///Inventory quantity input exceeds the limit of 50000. Consider using separate `inventorySetQuantities` mutations. + /// + [Description("Inventory quantity input exceeds the limit of 50000. Consider using separate `inventorySetQuantities` mutations.")] + INVENTORY_QUANTITIES_LIMIT_EXCEEDED, } public static class ProductVariantsBulkCreateUserErrorCodeStringValues @@ -79221,6 +80356,7 @@ public static class ProductVariantsBulkCreateUserErrorCodeStringValues public const string NEGATIVE_PRICE_VALUE = @"NEGATIVE_PRICE_VALUE"; public const string UNSUPPORTED_COMBINED_LISTING_PARENT_OPERATION = @"UNSUPPORTED_COMBINED_LISTING_PARENT_OPERATION"; public const string CANNOT_SET_NAME_FOR_LINKED_OPTION_VALUE = @"CANNOT_SET_NAME_FOR_LINKED_OPTION_VALUE"; + public const string INVENTORY_QUANTITIES_LIMIT_EXCEEDED = @"INVENTORY_QUANTITIES_LIMIT_EXCEEDED"; } /// @@ -79590,6 +80726,11 @@ public enum ProductVariantsBulkUpdateUserErrorCode /// [Description("Operation is not supported for a combined listing parent product.")] UNSUPPORTED_COMBINED_LISTING_PARENT_OPERATION, + /// + ///Inventory quantity input exceeds the limit of 50000. Consider using separate `inventorySetQuantities` mutations. + /// + [Description("Inventory quantity input exceeds the limit of 50000. Consider using separate `inventorySetQuantities` mutations.")] + INVENTORY_QUANTITIES_LIMIT_EXCEEDED, } public static class ProductVariantsBulkUpdateUserErrorCodeStringValues @@ -79620,6 +80761,7 @@ public static class ProductVariantsBulkUpdateUserErrorCodeStringValues public const string INVALID_VALUE = @"INVALID_VALUE"; public const string CANNOT_SET_NAME_FOR_LINKED_OPTION_VALUE = @"CANNOT_SET_NAME_FOR_LINKED_OPTION_VALUE"; public const string UNSUPPORTED_COMBINED_LISTING_PARENT_OPERATION = @"UNSUPPORTED_COMBINED_LISTING_PARENT_OPERATION"; + public const string INVENTORY_QUANTITIES_LIMIT_EXCEEDED = @"INVENTORY_QUANTITIES_LIMIT_EXCEEDED"; } /// @@ -79913,6 +81055,12 @@ public class Publication : GraphQLObject, INode [NonNull] public ProductConnection? includedProducts { get; set; } + /// + ///The count of products included in the publication. Limited to a maximum of 10000 by default. + /// + [Description("The count of products included in the publication. Limited to a maximum of 10000 by default.")] + public Count? includedProductsCount { get; set; } + /// ///Name of the publication. /// @@ -81269,9 +82417,9 @@ public class QueryRoot : GraphQLObject, IQueryRoot public Count? abandonedCheckoutsCount { get; set; } /// - ///Returns an abandonment by ID. + ///Returns a `Abandonment` resource by ID. /// - [Description("Returns an abandonment by ID.")] + [Description("Returns a `Abandonment` resource by ID.")] public Abandonment? abandonment { get; set; } /// @@ -81321,22 +82469,34 @@ public class QueryRoot : GraphQLObject, IQueryRoot public AppDiscountTypeConnection? appDiscountTypesNodes { get; set; } /// - ///Lookup an AppInstallation by ID or return the AppInstallation for the currently authenticated App. + ///Look up an app installation by ID or return the app installation for the currently authenticated app. + /// + ///Use the `appInstallation` query to: + ///- Fetch current access scope permissions for your app + ///- Retrieve active subscription details and billing status + ///- Validate installation state during app initialization + ///- Display installation-specific information in your app interface + /// + ///Learn more about [app installation](https://shopify.dev/docs/apps/build/authentication-authorization/app-installation). /// - [Description("Lookup an AppInstallation by ID or return the AppInstallation for the currently authenticated App.")] + [Description("Look up an app installation by ID or return the app installation for the currently authenticated app.\n\nUse the `appInstallation` query to:\n- Fetch current access scope permissions for your app\n- Retrieve active subscription details and billing status\n- Validate installation state during app initialization\n- Display installation-specific information in your app interface\n\nLearn more about [app installation](https://shopify.dev/docs/apps/build/authentication-authorization/app-installation).")] public AppInstallation? appInstallation { get; set; } /// - ///A list of app installations. To use this query, you need to contact [Shopify Support](https://partners.shopify.com/current/support/) to grant your custom app the `read_apps` access scope. Public apps can't be granted this access scope. + ///A list of app installations. To use this query, your app needs the `read_apps` access scope, which can only be requested after you're granted approval from [Shopify Support](https://partners.shopify.com/current/support/). This scope can be granted to custom and public apps. + /// + ///Returns a paginated connection of `AppInstallation` objects across multiple stores. + /// + ///Learn more about [app installation](https://shopify.dev/docs/apps/build/authentication-authorization/app-installation). /// - [Description("A list of app installations. To use this query, you need to contact [Shopify Support](https://partners.shopify.com/current/support/) to grant your custom app the `read_apps` access scope. Public apps can't be granted this access scope.")] + [Description("A list of app installations. To use this query, your app needs the `read_apps` access scope, which can only be requested after you're granted approval from [Shopify Support](https://partners.shopify.com/current/support/). This scope can be granted to custom and public apps.\n\nReturns a paginated connection of `AppInstallation` objects across multiple stores.\n\nLearn more about [app installation](https://shopify.dev/docs/apps/build/authentication-authorization/app-installation).")] [NonNull] public AppInstallationConnection? appInstallations { get; set; } /// - ///Returns an Article resource by ID. + ///Returns a `Article` resource by ID. /// - [Description("Returns an Article resource by ID.")] + [Description("Returns a `Article` resource by ID.")] public Article? article { get; set; } /// @@ -81386,9 +82546,9 @@ public class QueryRoot : GraphQLObject, IQueryRoot public FulfillmentOrderConnection? assignedFulfillmentOrders { get; set; } /// - ///Returns an automatic discount resource by ID. + ///Returns a `DiscountAutomatic` resource by ID. /// - [Description("Returns an automatic discount resource by ID.")] + [Description("Returns a `DiscountAutomatic` resource by ID.")] [Obsolete("Use `automaticDiscountNode` instead.")] public IDiscountAutomatic? automaticDiscount { get; set; } @@ -81449,9 +82609,9 @@ public class QueryRoot : GraphQLObject, IQueryRoot public IMarketRegion? backupRegion { get; set; } /// - ///Returns a Blog resource by ID. + ///Returns a `Blog` resource by ID. /// - [Description("Returns a Blog resource by ID.")] + [Description("Returns a `Blog` resource by ID.")] public Blog? blog { get; set; } /// @@ -81728,9 +82888,9 @@ public class QueryRoot : GraphQLObject, IQueryRoot public Count? collectionsCount { get; set; } /// - ///Returns a Comment resource by ID. + ///Returns a `Comment` resource by ID. /// - [Description("Returns a Comment resource by ID.")] + [Description("Returns a `Comment` resource by ID.")] public Comment? comment { get; set; } /// @@ -81809,6 +82969,7 @@ public class QueryRoot : GraphQLObject, IQueryRoot ///Returns the current app's most recent BulkOperation. Apps can run one bulk query and one bulk mutation operation at a time, by shop. /// [Description("Returns the current app's most recent BulkOperation. Apps can run one bulk query and one bulk mutation operation at a time, by shop.")] + [Obsolete("Use `bulkOperations` with status filter instead.")] public BulkOperation? currentBulkOperation { get; set; } /// @@ -81824,9 +82985,9 @@ public class QueryRoot : GraphQLObject, IQueryRoot public Customer? customer { get; set; } /// - ///Returns a customer account page. + ///Returns a `CustomerAccountPage` resource by ID. /// - [Description("Returns a customer account page.")] + [Description("Returns a `CustomerAccountPage` resource by ID.")] public ICustomerAccountPage? customerAccountPage { get; set; } /// @@ -81969,9 +83130,9 @@ public class QueryRoot : GraphQLObject, IQueryRoot public Count? discountCodesCount { get; set; } /// - ///Returns a discount resource by ID. + ///Returns a `DiscountNode` resource by ID. /// - [Description("Returns a discount resource by ID.")] + [Description("Returns a `DiscountNode` resource by ID.")] public DiscountNode? discountNode { get; set; } /// @@ -82386,9 +83547,9 @@ public class QueryRoot : GraphQLObject, IQueryRoot public MarketsResolvedValues? marketsResolvedValues { get; set; } /// - ///Returns a Menu resource by ID. + ///Returns a `Menu` resource by ID. /// - [Description("Returns a Menu resource by ID.")] + [Description("Returns a `Menu` resource by ID.")] public Menu? menu { get; set; } /// @@ -82524,6 +83685,12 @@ public class QueryRoot : GraphQLObject, IQueryRoot [Description("Return an order by an identifier.")] public Order? orderByIdentifier { get; set; } + /// + ///Returns a `OrderEditSession` resource by ID. + /// + [Description("Returns a `OrderEditSession` resource by ID.")] + public OrderEditSession? orderEditSession { get; set; } + /// ///Returns a payment status by payment reference ID. Used to check the status of a deferred payment. /// @@ -82553,9 +83720,9 @@ public class QueryRoot : GraphQLObject, IQueryRoot public Count? ordersCount { get; set; } /// - ///Returns a Page resource by ID. + ///Returns a `Page` resource by ID. /// - [Description("Returns a Page resource by ID.")] + [Description("Returns a `Page` resource by ID.")] public Page? page { get; set; } /// @@ -82937,9 +84104,9 @@ public class QueryRoot : GraphQLObject, IQueryRoot public CalculatedReturn? returnCalculate { get; set; } /// - ///Lookup a returnable fulfillment by ID. + ///Returns a `ReturnableFulfillment` resource by ID. /// - [Description("Lookup a returnable fulfillment by ID.")] + [Description("Returns a `ReturnableFulfillment` resource by ID.")] public ReturnableFulfillment? returnableFulfillment { get; set; } /// @@ -83109,6 +84276,12 @@ public class QueryRoot : GraphQLObject, IQueryRoot [Description("Shopify Payments account information, including balances and payouts.")] public ShopifyPaymentsAccount? shopifyPaymentsAccount { get; set; } + /// + ///Returns the results of a ShopifyQL query. + /// + [Description("Returns the results of a ShopifyQL query.")] + public ShopifyqlQueryResponse? shopifyqlQuery { get; set; } + /// ///The StaffMember resource, by ID. /// @@ -83137,9 +84310,9 @@ public class QueryRoot : GraphQLObject, IQueryRoot public StoreCreditAccount? storeCreditAccount { get; set; } /// - ///Returns a SubscriptionBillingAttempt by ID. + ///Returns a `SubscriptionBillingAttempt` resource by ID. /// - [Description("Returns a SubscriptionBillingAttempt by ID.")] + [Description("Returns a `SubscriptionBillingAttempt` resource by ID.")] public SubscriptionBillingAttempt? subscriptionBillingAttempt { get; set; } /// @@ -83235,15 +84408,15 @@ public class QueryRoot : GraphQLObject, IQueryRoot public TranslatableResourceConnection? translatableResourcesByIds { get; set; } /// - ///Returns a redirect resource by ID. + ///Returns a `UrlRedirect` resource by ID. /// - [Description("Returns a redirect resource by ID.")] + [Description("Returns a `UrlRedirect` resource by ID.")] public UrlRedirect? urlRedirect { get; set; } /// - ///Returns a redirect import resource by ID. + ///Returns a `UrlRedirectImport` resource by ID. /// - [Description("Returns a redirect import resource by ID.")] + [Description("Returns a `UrlRedirectImport` resource by ID.")] public UrlRedirectImport? urlRedirectImport { get; set; } /// @@ -83302,11 +84475,29 @@ public class QueryRoot : GraphQLObject, IQueryRoot public WebhookSubscription? webhookSubscription { get; set; } /// - ///Returns a list of webhook subscriptions. + ///Retrieves a paginated list of shop-scoped webhook subscriptions configured for the current app. This query returns webhook subscriptions created via the API for this shop, not including app-scoped subscriptions configured via TOML files. + /// + ///For example, an app dashboard might use this query to display all configured webhooks, showing which events trigger notifications and their delivery endpoints for troubleshooting integration issues. + /// + ///Use the `webhookSubscriptions` query to: + ///- Audit all active shop-scoped webhook configurations + ///- View and manage webhook subscription configurations + ///- Display subscription details in app dashboards + ///- Retrieve existing webhook configurations for dynamic integration setups + ///- Check which subscriptions already exist before creating new ones + /// + ///The query returns comprehensive subscription data including event topics, endpoint configurations, filtering rules, API versions, and metafield namespace permissions. Each subscription includes creation and modification timestamps for tracking configuration changes. + /// + ///Results support standard GraphQL pagination patterns with cursor-based navigation, allowing efficient retrieval of large webhook subscription lists. The response includes detailed endpoint information varying by type - HTTP callback URLs, EventBridge ARNs, or Pub/Sub project and topic specifications. + /// + ///Advanced subscription features like event filtering using Shopify search syntax, field inclusion rules, and metafield namespace access are fully exposed, providing complete visibility into webhook configuration. + /// + ///Learn more about [webhook subscription queries](https://shopify.dev/docs/apps/build/webhooks/subscribe). + /// /// ///Building an app? If you only use app-specific webhooks, you won't need this. App-specific webhook subscriptions specified in your `shopify.app.toml` may be easier. They are automatically kept up to date by Shopify & require less maintenance. Please read [About managing webhook subscriptions](https://shopify.dev/docs/apps/build/webhooks/subscribe). /// - [Description("Returns a list of webhook subscriptions.\n\nBuilding an app? If you only use app-specific webhooks, you won't need this. App-specific webhook subscriptions specified in your `shopify.app.toml` may be easier. They are automatically kept up to date by Shopify & require less maintenance. Please read [About managing webhook subscriptions](https://shopify.dev/docs/apps/build/webhooks/subscribe).")] + [Description("Retrieves a paginated list of shop-scoped webhook subscriptions configured for the current app. This query returns webhook subscriptions created via the API for this shop, not including app-scoped subscriptions configured via TOML files.\n\nFor example, an app dashboard might use this query to display all configured webhooks, showing which events trigger notifications and their delivery endpoints for troubleshooting integration issues.\n\nUse the `webhookSubscriptions` query to:\n- Audit all active shop-scoped webhook configurations\n- View and manage webhook subscription configurations\n- Display subscription details in app dashboards\n- Retrieve existing webhook configurations for dynamic integration setups\n- Check which subscriptions already exist before creating new ones\n\nThe query returns comprehensive subscription data including event topics, endpoint configurations, filtering rules, API versions, and metafield namespace permissions. Each subscription includes creation and modification timestamps for tracking configuration changes.\n\nResults support standard GraphQL pagination patterns with cursor-based navigation, allowing efficient retrieval of large webhook subscription lists. The response includes detailed endpoint information varying by type - HTTP callback URLs, EventBridge ARNs, or Pub/Sub project and topic specifications.\n\nAdvanced subscription features like event filtering using Shopify search syntax, field inclusion rules, and metafield namespace access are fully exposed, providing complete visibility into webhook configuration.\n\nLearn more about [webhook subscription queries](https://shopify.dev/docs/apps/build/webhooks/subscribe).\n\n\nBuilding an app? If you only use app-specific webhooks, you won't need this. App-specific webhook subscriptions specified in your `shopify.app.toml` may be easier. They are automatically kept up to date by Shopify & require less maintenance. Please read [About managing webhook subscriptions](https://shopify.dev/docs/apps/build/webhooks/subscribe).")] [NonNull] public WebhookSubscriptionConnection? webhookSubscriptions { get; set; } @@ -85358,6 +86549,30 @@ public class ReturnProcessPayload : GraphQLObject public IEnumerable? userErrors { get; set; } } + /// + ///Filter line items based on processing status. + /// + [Description("Filter line items based on processing status.")] + public enum ReturnProcessingStatusFilterInput + { + /// + ///Only include line items that have been processed. + /// + [Description("Only include line items that have been processed.")] + PROCESSED, + /// + ///Only include line items that have some processable quantity. + /// + [Description("Only include line items that have some processable quantity.")] + PROCESSABLE, + } + + public static class ReturnProcessingStatusFilterInputStringValues + { + public const string PROCESSED = @"PROCESSED"; + public const string PROCESSABLE = @"PROCESSABLE"; + } + /// ///The reason for returning the return line item. /// @@ -87847,9 +89062,18 @@ public class SegmentEdge : GraphQLObject, IEdge } /// - ///A filter with a set of possible values that's been added to a segment query. + ///Categorical filter options for building customer segments using predefined value sets like countries, subscription statuses, or order frequencies. + /// + ///For example, a "Customer Location" enum filter provides options like "United States," "Canada," and "United Kingdom." + /// + ///Use this object to: + ///- Access available categorical filter options + ///- Understand filter capabilities and constraints + ///- Build user interfaces for segment creation + /// + ///Includes localized display names, indicates whether multiple values can be selected, and provides technical query names for API operations. /// - [Description("A filter with a set of possible values that's been added to a segment query.")] + [Description("Categorical filter options for building customer segments using predefined value sets like countries, subscription statuses, or order frequencies.\n\nFor example, a \"Customer Location\" enum filter provides options like \"United States,\" \"Canada,\" and \"United Kingdom.\"\n\nUse this object to:\n- Access available categorical filter options\n- Understand filter capabilities and constraints\n- Build user interfaces for segment creation\n\nIncludes localized display names, indicates whether multiple values can be selected, and provides technical query names for API operations.")] public class SegmentEnumFilter : GraphQLObject, ISegmentFilter { /// @@ -91061,7 +92285,7 @@ public class Shop : GraphQLObject, IHasMetafieldDefinitions, IHasMetafield ///List of saved draft orders on the shop. /// [Description("List of saved draft orders on the shop.")] - [Obsolete("Use `QueryRoot.draftOrders` instead.")] + [Obsolete("Removed as of 2026-01. Use `QueryRoot.draftOrders` instead.")] [NonNull] public DraftOrderConnection? draftOrders { get; set; } @@ -92758,9 +93982,9 @@ public class ShopPlan : GraphQLObject public bool? partnerDevelopment { get; set; } /// - ///The public display name of the shop's billing plan. Possible values are: Advanced, Basic, Development, Grow, Inactive, Lite, Other, Paused, Plus, Plus Trial, Retail, Shop Component, Staff Business, Starter, and Trial. + ///The public display name of the shop's billing plan. Possible values are: Advanced, Basic, Development, Grow, Inactive, Lite, Other, Paused, Plus, Plus Trial, Retail, Shop Component, Shopify Finance, Staff Business, Starter, and Trial. /// - [Description("The public display name of the shop's billing plan. Possible values are: Advanced, Basic, Development, Grow, Inactive, Lite, Other, Paused, Plus, Plus Trial, Retail, Shop Component, Staff Business, Starter, and Trial.")] + [Description("The public display name of the shop's billing plan. Possible values are: Advanced, Basic, Development, Grow, Inactive, Lite, Other, Paused, Plus, Plus Trial, Retail, Shop Component, Shopify Finance, Staff Business, Starter, and Trial.")] [NonNull] public string? publicDisplayName { get; set; } @@ -94067,6 +95291,13 @@ public class ShopifyPaymentsDispute : GraphQLObject, ILe [NonNull] public MoneyV2? amount { get; set; } + /// + ///The evidence associated with the dispute. + /// + [Description("The evidence associated with the dispute.")] + [NonNull] + public ShopifyPaymentsDisputeEvidence? disputeEvidence { get; set; } + /// ///The deadline for evidence submission. /// @@ -94377,6 +95608,11 @@ public enum ShopifyPaymentsDisputeEvidenceFileType /// [Description("Service Documentation File.")] SERVICE_DOCUMENTATION_FILE, + /// + ///Response Summary File. + /// + [Description("Response Summary File.")] + RESPONSE_SUMMARY_FILE, } public static class ShopifyPaymentsDisputeEvidenceFileTypeStringValues @@ -94387,6 +95623,7 @@ public static class ShopifyPaymentsDisputeEvidenceFileTypeStringValues public const string UNCATEGORIZED_FILE = @"UNCATEGORIZED_FILE"; public const string SHIPPING_DOCUMENTATION_FILE = @"SHIPPING_DOCUMENTATION_FILE"; public const string SERVICE_DOCUMENTATION_FILE = @"SERVICE_DOCUMENTATION_FILE"; + public const string RESPONSE_SUMMARY_FILE = @"RESPONSE_SUMMARY_FILE"; } /// @@ -94702,6 +95939,12 @@ public class ShopifyPaymentsPayout : GraphQLObject, ILega [NonNull] public BusinessEntity? businessEntity { get; set; } + /// + ///A unique trace ID from the financial institution. Use this reference number to track the payout with your provider. + /// + [Description("A unique trace ID from the financial institution. Use this reference number to track the payout with your provider.")] + public string? externalTraceId { get; set; } + /// ///The total amount and currency of the payout. /// @@ -95107,6 +96350,13 @@ public class ShopifyPaymentsPayoutSummary : GraphQLObject + ///Total amount for all usdc rebate credit balance adjustments. + /// + [Description("Total amount for all usdc rebate credit balance adjustments.")] + [NonNull] + public MoneyV2? usdcRebateCreditAmount { get; set; } } /// @@ -95317,6 +96567,26 @@ public class ShopifyPaymentsTransactionSet : GraphQLObject + ///The ach_bank_failure_debit_fee transaction type. + /// + [Description("The ach_bank_failure_debit_fee transaction type.")] + ACH_BANK_FAILURE_DEBIT_FEE, + /// + ///The ach_bank_failure_debit_reversal_fee transaction type. + /// + [Description("The ach_bank_failure_debit_reversal_fee transaction type.")] + ACH_BANK_FAILURE_DEBIT_REVERSAL_FEE, + /// + ///The ads_publisher_credit transaction type. + /// + [Description("The ads_publisher_credit transaction type.")] + ADS_PUBLISHER_CREDIT, + /// + ///The ads_publisher_credit_reversal transaction type. + /// + [Description("The ads_publisher_credit_reversal transaction type.")] + ADS_PUBLISHER_CREDIT_REVERSAL, /// ///The chargeback_protection_credit transaction type. /// @@ -95851,6 +97121,10 @@ public enum ShopifyPaymentsTransactionType public static class ShopifyPaymentsTransactionTypeStringValues { + public const string ACH_BANK_FAILURE_DEBIT_FEE = @"ACH_BANK_FAILURE_DEBIT_FEE"; + public const string ACH_BANK_FAILURE_DEBIT_REVERSAL_FEE = @"ACH_BANK_FAILURE_DEBIT_REVERSAL_FEE"; + public const string ADS_PUBLISHER_CREDIT = @"ADS_PUBLISHER_CREDIT"; + public const string ADS_PUBLISHER_CREDIT_REVERSAL = @"ADS_PUBLISHER_CREDIT_REVERSAL"; public const string CHARGEBACK_PROTECTION_CREDIT = @"CHARGEBACK_PROTECTION_CREDIT"; public const string CHARGEBACK_PROTECTION_CREDIT_REVERSAL = @"CHARGEBACK_PROTECTION_CREDIT_REVERSAL"; public const string CHARGEBACK_PROTECTION_DEBIT = @"CHARGEBACK_PROTECTION_DEBIT"; @@ -96070,6 +97344,83 @@ public static class ShopifyProtectStatusStringValues public const string NOT_PROTECTED = @"NOT_PROTECTED"; } + /// + ///A response to a ShopifyQL query. + /// + [Description("A response to a ShopifyQL query.")] + public class ShopifyqlQueryResponse : GraphQLObject + { + /// + ///A list of parse errors, if parsing fails. + /// + [Description("A list of parse errors, if parsing fails.")] + [NonNull] + public IEnumerable? parseErrors { get; set; } + + /// + ///The result in a tabular format with column and row data. + /// + [Description("The result in a tabular format with column and row data.")] + public ShopifyqlTableData? tableData { get; set; } + } + + /// + ///The result of a ShopifyQL query. + /// + [Description("The result of a ShopifyQL query.")] + public class ShopifyqlTableData : GraphQLObject + { + /// + ///The columns of the table. + /// + [Description("The columns of the table.")] + [NonNull] + public IEnumerable? columns { get; set; } + + /// + ///The rows of the table. + /// + [Description("The rows of the table.")] + [NonNull] + public string? rows { get; set; } + } + + /// + ///Represents a column in a ShopifyQL query response. + /// + [Description("Represents a column in a ShopifyQL query response.")] + public class ShopifyqlTableDataColumn : GraphQLObject + { + /// + ///The data type of the column. + /// + [Description("The data type of the column.")] + [NonNull] + [EnumType(typeof(ColumnDataType))] + public string? dataType { get; set; } + + /// + ///The human-readable display name of the column. + /// + [Description("The human-readable display name of the column.")] + [NonNull] + public string? displayName { get; set; } + + /// + ///The name of the column. + /// + [Description("The name of the column.")] + [NonNull] + public string? name { get; set; } + + /// + ///The sub type of an array column. + /// + [Description("The sub type of an array column.")] + [EnumType(typeof(ColumnDataType))] + public string? subType { get; set; } + } + /// ///Represents the data about a staff member's Shopify account. Merchants can use staff member data to get more information about the staff members in their store. /// @@ -96770,6 +98121,14 @@ public enum StagedUploadTargetGenerateUploadResource /// [Description("Represents a redirect CSV file.\n\nExample usage: This resource can be used for creating a\n[UrlRedirectImport](https://shopify.dev/api/admin-graphql/2022-04/objects/UrlRedirectImport)\nobject for use in the\n[urlRedirectImportCreate mutation](https://shopify.dev/api/admin-graphql/latest/mutations/urlRedirectImportCreate).")] URL_REDIRECT_IMPORT, + /// + ///Represents a file associated with a dispute. + /// + ///For example, after uploading the file, you can add the file to a dispute using the + ///[disputeEvidenceUpdate mutation](https://shopify.dev/api/admin-graphql/latest/mutations/disputeEvidenceUpdate). + /// + [Description("Represents a file associated with a dispute.\n\nFor example, after uploading the file, you can add the file to a dispute using the\n[disputeEvidenceUpdate mutation](https://shopify.dev/api/admin-graphql/latest/mutations/disputeEvidenceUpdate).")] + DISPUTE_FILE_UPLOAD, } public static class StagedUploadTargetGenerateUploadResourceStringValues @@ -96784,6 +98143,7 @@ public static class StagedUploadTargetGenerateUploadResourceStringValues public const string BULK_MUTATION_VARIABLES = @"BULK_MUTATION_VARIABLES"; public const string RETURN_LABEL = @"RETURN_LABEL"; public const string URL_REDIRECT_IMPORT = @"URL_REDIRECT_IMPORT"; + public const string DISPUTE_FILE_UPLOAD = @"DISPUTE_FILE_UPLOAD"; } /// @@ -104251,6 +105611,71 @@ public static class ThemeDeleteUserErrorCodeStringValues public const string NOT_FOUND = @"NOT_FOUND"; } + /// + ///Return type for `themeDuplicate` mutation. + /// + [Description("Return type for `themeDuplicate` mutation.")] + public class ThemeDuplicatePayload : GraphQLObject + { + /// + ///The newly duplicated theme. + /// + [Description("The newly duplicated theme.")] + public OnlineStoreTheme? newTheme { get; set; } + + /// + ///The list of errors that occurred from executing the mutation. + /// + [Description("The list of errors that occurred from executing the mutation.")] + [NonNull] + public IEnumerable? userErrors { get; set; } + } + + /// + ///An error that occurs during the execution of `ThemeDuplicate`. + /// + [Description("An error that occurs during the execution of `ThemeDuplicate`.")] + public class ThemeDuplicateUserError : GraphQLObject, IDisplayableError + { + /// + ///The error code. + /// + [Description("The error code.")] + [EnumType(typeof(ThemeDuplicateUserErrorCode))] + public string? code { get; set; } + + /// + ///The path to the input field that caused the error. + /// + [Description("The path to the input field that caused the error.")] + public IEnumerable? field { get; set; } + + /// + ///The error message. + /// + [Description("The error message.")] + [NonNull] + public string? message { get; set; } + } + + /// + ///Possible error codes that can be returned by `ThemeDuplicateUserError`. + /// + [Description("Possible error codes that can be returned by `ThemeDuplicateUserError`.")] + public enum ThemeDuplicateUserErrorCode + { + /// + ///The record with the ID used as the input value couldn't be found. + /// + [Description("The record with the ID used as the input value couldn't be found.")] + NOT_FOUND, + } + + public static class ThemeDuplicateUserErrorCodeStringValues + { + public const string NOT_FOUND = @"NOT_FOUND"; + } + /// ///Return type for `themeFilesCopy` mutation. /// @@ -105000,6 +106425,11 @@ public enum TranslatableResourceType [Description("A link to direct users. Translatable fields: `title`.")] LINK, /// + ///An image. Translatable fields: `alt`. + /// + [Description("An image. Translatable fields: `alt`.")] + MEDIA_IMAGE, + /// ///A category of links. Translatable fields: `title`. /// [Description("A category of links. Translatable fields: `title`.")] @@ -105111,6 +106541,7 @@ public static class TranslatableResourceTypeStringValues public const string EMAIL_TEMPLATE = @"EMAIL_TEMPLATE"; public const string FILTER = @"FILTER"; public const string LINK = @"LINK"; + public const string MEDIA_IMAGE = @"MEDIA_IMAGE"; public const string MENU = @"MENU"; public const string METAFIELD = @"METAFIELD"; public const string METAOBJECT = @"METAOBJECT"; @@ -106774,6 +108205,16 @@ public enum ValidationUserErrorCode [Description("Cannot have more than 25 active validation functions.")] MAX_VALIDATIONS_ACTIVATED, /// + ///Either function_id or function_handle must be provided. + /// + [Description("Either function_id or function_handle must be provided.")] + MISSING_FUNCTION_IDENTIFIER, + /// + ///Only one of function_id or function_handle can be provided, not both. + /// + [Description("Only one of function_id or function_handle can be provided, not both.")] + MULTIPLE_FUNCTION_IDENTIFIERS, + /// ///The type is invalid. /// [Description("The type is invalid.")] @@ -106854,6 +108295,8 @@ public static class ValidationUserErrorCodeStringValues public const string PUBLIC_APP_NOT_ALLOWED = @"PUBLIC_APP_NOT_ALLOWED"; public const string FUNCTION_PENDING_DELETION = @"FUNCTION_PENDING_DELETION"; public const string MAX_VALIDATIONS_ACTIVATED = @"MAX_VALIDATIONS_ACTIVATED"; + public const string MISSING_FUNCTION_IDENTIFIER = @"MISSING_FUNCTION_IDENTIFIER"; + public const string MULTIPLE_FUNCTION_IDENTIFIERS = @"MULTIPLE_FUNCTION_IDENTIFIERS"; public const string INVALID_TYPE = @"INVALID_TYPE"; public const string INVALID_VALUE = @"INVALID_VALUE"; public const string APP_NOT_AUTHORIZED = @"APP_NOT_AUTHORIZED"; @@ -107303,9 +108746,15 @@ public class WebPresenceUpdatePayload : GraphQLObject } /// - ///An Amazon EventBridge partner event source to which webhook subscriptions publish events. + ///Connects your app to Amazon EventBridge so you can receive Shopify webhook events and process them through AWS's event-driven architecture. This gives you enterprise-grade scalability and lets you tap into the full AWS ecosystem for handling webhook traffic. + /// + ///For example, when a customer places an order, Shopify can publish the order creation event directly to your EventBridge partner source, allowing your AWS infrastructure to process the event through Lambda functions, SQS queues, or other AWS services. + /// + ///EventBridge endpoints provide enterprise-grade event routing and processing capabilities, making them ideal for apps that need to handle high-volume webhook traffic or integrate deeply with AWS services. + /// + ///Learn more about [webhook endpoints](https://shopify.dev/docs/apps/build/webhooks/subscribe/get-started). /// - [Description("An Amazon EventBridge partner event source to which webhook subscriptions publish events.")] + [Description("Connects your app to Amazon EventBridge so you can receive Shopify webhook events and process them through AWS's event-driven architecture. This gives you enterprise-grade scalability and lets you tap into the full AWS ecosystem for handling webhook traffic.\n\nFor example, when a customer places an order, Shopify can publish the order creation event directly to your EventBridge partner source, allowing your AWS infrastructure to process the event through Lambda functions, SQS queues, or other AWS services.\n\nEventBridge endpoints provide enterprise-grade event routing and processing capabilities, making them ideal for apps that need to handle high-volume webhook traffic or integrate deeply with AWS services.\n\nLearn more about [webhook endpoints](https://shopify.dev/docs/apps/build/webhooks/subscribe/get-started).")] public class WebhookEventBridgeEndpoint : GraphQLObject, IWebhookSubscriptionEndpoint { /// @@ -107317,9 +108766,15 @@ public class WebhookEventBridgeEndpoint : GraphQLObject - ///An HTTPS endpoint to which webhook subscriptions send POST requests. + ///An HTTPS endpoint that receives webhook events as POST requests, letting your app respond to Shopify events in real-time. This is the most common webhook endpoint type, allowing apps to process Shopify events through standard HTTP callbacks. + /// + ///For example, when setting up order notifications, your app would provide an HTTPS URL like `https://yourapp.com/webhooks/orders/create` to receive order creation events as JSON payloads. + /// + ///HTTP endpoints offer straightforward webhook integration with immediate event delivery, making them suitable for apps that need real-time notifications without complex infrastructure requirements. + /// + ///Learn more about [HTTP webhook configuration](https://shopify.dev/docs/apps/build/webhooks/subscribe/https). /// - [Description("An HTTPS endpoint to which webhook subscriptions send POST requests.")] + [Description("An HTTPS endpoint that receives webhook events as POST requests, letting your app respond to Shopify events in real-time. This is the most common webhook endpoint type, allowing apps to process Shopify events through standard HTTP callbacks.\n\nFor example, when setting up order notifications, your app would provide an HTTPS URL like `https://yourapp.com/webhooks/orders/create` to receive order creation events as JSON payloads.\n\nHTTP endpoints offer straightforward webhook integration with immediate event delivery, making them suitable for apps that need real-time notifications without complex infrastructure requirements.\n\nLearn more about [HTTP webhook configuration](https://shopify.dev/docs/apps/build/webhooks/subscribe/https).")] public class WebhookHttpEndpoint : GraphQLObject, IWebhookSubscriptionEndpoint { /// @@ -107331,9 +108786,15 @@ public class WebhookHttpEndpoint : GraphQLObject, IWebhookS } /// - ///A Google Cloud Pub/Sub topic to which webhook subscriptions publish events. + ///Individual Google Cloud Pub/Sub topics that receive webhook events for reliable, asynchronous processing. This endpoint type lets your app tap into Google Cloud's messaging infrastructure to handle events at scale. + /// + ///For example, when inventory levels change, Shopify can publish these events to your Pub/Sub topic `projects/your-project/topics/inventory-updates`, allowing your Google Cloud functions or services to process inventory changes at their own pace. + /// + ///Pub/Sub endpoints provide reliable message delivery to Google Cloud Pub/Sub, making them excellent for apps that need to handle variable webhook volumes or integrate with Google Cloud Platform services. + /// + ///Learn more about [Pub/Sub webhook configuration](https://shopify.dev/docs/apps/build/webhooks/subscribe/get-started). /// - [Description("A Google Cloud Pub/Sub topic to which webhook subscriptions publish events.")] + [Description("Individual Google Cloud Pub/Sub topics that receive webhook events for reliable, asynchronous processing. This endpoint type lets your app tap into Google Cloud's messaging infrastructure to handle events at scale.\n\nFor example, when inventory levels change, Shopify can publish these events to your Pub/Sub topic `projects/your-project/topics/inventory-updates`, allowing your Google Cloud functions or services to process inventory changes at their own pace.\n\nPub/Sub endpoints provide reliable message delivery to Google Cloud Pub/Sub, making them excellent for apps that need to handle variable webhook volumes or integrate with Google Cloud Platform services.\n\nLearn more about [Pub/Sub webhook configuration](https://shopify.dev/docs/apps/build/webhooks/subscribe/get-started).")] public class WebhookPubSubEndpoint : GraphQLObject, IWebhookSubscriptionEndpoint { /// @@ -107453,6 +108914,13 @@ public class WebhookSubscription : GraphQLObject, ILegacyIn [Description("The date and time when the webhook subscription was updated.")] [NonNull] public DateTime? updatedAt { get; set; } + + /// + ///The URI to which the webhook subscription will send events. + /// + [Description("The URI to which the webhook subscription will send events.")] + [NonNull] + public string? uri { get; set; } } /// @@ -107576,9 +109044,29 @@ public static class WebhookSubscriptionFormatStringValues } /// - ///Identifies metafields by their namespace, and key. + ///Webhook subscriptions let you receive instant notifications when important events happen in a merchant's store, so you can automate workflows and keep your systems in sync without constantly polling for updates. + /// + ///For example, a subscription might monitor `orders/create` events and send JSON payloads to `https://yourapp.com/webhooks/orders` whenever customers place new orders, enabling immediate order processing workflows. + /// + ///Use the `WebhookSubscription` object to: + ///- Monitor active webhook configurations + ///- Access subscription details like topics, endpoints, and filtering rules + ///- Retrieve creation and update timestamps for audit purposes + ///- Review API versions and format settings + ///- Examine metafield namespace configurations for extended data access + /// + ///Each subscription includes comprehensive configuration details such as the specific Shopify events being monitored, the destination endpoint (HTTP, EventBridge, or Pub/Sub), event filtering criteria, and payload customization settings. The subscription tracks its creation and modification history. + /// + ///Subscriptions can include advanced features like Shopify search syntax for event filtering to control + ///which events trigger notifications, specific field inclusion rules to control which fields are included + ///in the webhook payload, and metafield namespace access to capture custom store data. The API version + ///is inherited from the app that created the webhook subscription. + /// + ///The endpoint configuration varies by type - HTTP subscriptions include callback URLs, EventBridge subscriptions reference AWS ARNs, and Pub/Sub subscriptions specify Google Cloud project and topic details. This flexibility allows apps to integrate webhooks with their preferred infrastructure and event processing systems. + /// + ///Learn more about [webhook subscription management](https://shopify.dev/docs/apps/webhooks). /// - [Description("Identifies metafields by their namespace, and key.")] + [Description("Webhook subscriptions let you receive instant notifications when important events happen in a merchant's store, so you can automate workflows and keep your systems in sync without constantly polling for updates.\n\nFor example, a subscription might monitor `orders/create` events and send JSON payloads to `https://yourapp.com/webhooks/orders` whenever customers place new orders, enabling immediate order processing workflows.\n\nUse the `WebhookSubscription` object to:\n- Monitor active webhook configurations\n- Access subscription details like topics, endpoints, and filtering rules\n- Retrieve creation and update timestamps for audit purposes\n- Review API versions and format settings\n- Examine metafield namespace configurations for extended data access\n\nEach subscription includes comprehensive configuration details such as the specific Shopify events being monitored, the destination endpoint (HTTP, EventBridge, or Pub/Sub), event filtering criteria, and payload customization settings. The subscription tracks its creation and modification history.\n\nSubscriptions can include advanced features like Shopify search syntax for event filtering to control\nwhich events trigger notifications, specific field inclusion rules to control which fields are included\nin the webhook payload, and metafield namespace access to capture custom store data. The API version\nis inherited from the app that created the webhook subscription.\n\nThe endpoint configuration varies by type - HTTP subscriptions include callback URLs, EventBridge subscriptions reference AWS ARNs, and Pub/Sub subscriptions specify Google Cloud project and topic details. This flexibility allows apps to integrate webhooks with their preferred infrastructure and event processing systems.\n\nLearn more about [webhook subscription management](https://shopify.dev/docs/apps/webhooks).")] public class WebhookSubscriptionMetafieldIdentifier : GraphQLObject { /// @@ -108238,6 +109726,11 @@ public enum WebhookSubscriptionTopic [Description("The webhook topic for `locales/update` events. Occurs whenever a shop locale is updated, such as published or unpublished Requires the `read_locales` scope.")] LOCALES_UPDATE, /// + ///The webhook topic for `locales/destroy` events. Occurs whenever a shop locale is destroyed Requires the `read_locales` scope. + /// + [Description("The webhook topic for `locales/destroy` events. Occurs whenever a shop locale is destroyed Requires the `read_locales` scope.")] + LOCALES_DESTROY, + /// ///The webhook topic for `domains/create` events. Occurs whenever a domain is created. /// [Description("The webhook topic for `domains/create` events. Occurs whenever a domain is created.")] @@ -108879,6 +110372,7 @@ public static class WebhookSubscriptionTopicStringValues public const string APP_SUBSCRIPTIONS_UPDATE = @"APP_SUBSCRIPTIONS_UPDATE"; public const string LOCALES_CREATE = @"LOCALES_CREATE"; public const string LOCALES_UPDATE = @"LOCALES_UPDATE"; + public const string LOCALES_DESTROY = @"LOCALES_DESTROY"; public const string DOMAINS_CREATE = @"DOMAINS_CREATE"; public const string DOMAINS_UPDATE = @"DOMAINS_UPDATE"; public const string DOMAINS_DESTROY = @"DOMAINS_DESTROY"; diff --git a/ShopifyNet/ShopifyClientOptions.cs b/ShopifyNet/ShopifyClientOptions.cs index e5881f7..fb57734 100644 --- a/ShopifyNet/ShopifyClientOptions.cs +++ b/ShopifyNet/ShopifyClientOptions.cs @@ -6,7 +6,7 @@ namespace ShopifyNet; public class ShopifyClientOptions : IGraphQLClientOptions { - public const string DEFAULT_API_VERSION = "2025-07"; + public const string DEFAULT_API_VERSION = "2025-10"; private static readonly ProductInfoHeaderValue _userAgent = new( typeof(ShopifyClientOptions).Assembly.GetName().Name!, typeof(ShopifyClientOptions).Assembly.GetName().Version!.ToString()); diff --git a/ShopifyNet/ShopifyNet.csproj b/ShopifyNet/ShopifyNet.csproj index 7bef4c6..a2bf51d 100644 --- a/ShopifyNet/ShopifyNet.csproj +++ b/ShopifyNet/ShopifyNet.csproj @@ -1,11 +1,11 @@ - + true https://github.com/Wish-Org/ShopifyNet https://github.com/Wish-Org/ShopifyNet .NET utilities for Shopify GraphQL - 2.10.0 + 2.11.0 shopify graphql types classes schema generator strongly typed