diff --git a/ShopifyNet/Generated.cs b/ShopifyNet/Generated.cs index 389df9b..8d1c341 100644 --- a/ShopifyNet/Generated.cs +++ b/ShopifyNet/Generated.cs @@ -38,16 +38,16 @@ public class AbandonedCheckout : GraphQLObject, INavigable, I /// ///The billing address provided by the buyer. - ///Null if the user did not provide a billing address. + ///Null if the user didn't provide a billing address. /// - [Description("The billing address provided by the buyer.\nNull if the user did not provide a billing address.")] + [Description("The billing address provided by the buyer.\nNull if the user didn't provide a billing address.")] public MailingAddress? billingAddress { get; set; } /// ///The date and time when the buyer completed the checkout. - ///Null if the checkout has not been completed. + ///Null if the checkout hasn't been completed. /// - [Description("The date and time when the buyer completed the checkout.\nNull if the checkout has not been completed.")] + [Description("The date and time when the buyer completed the checkout.\nNull if the checkout hasn't been completed.")] public DateTime? completedAt { get; set; } /// @@ -123,9 +123,9 @@ public class AbandonedCheckout : GraphQLObject, INavigable, I /// ///The shipping address to where the line items will be shipped. - ///Null if the user did not provide a shipping address. + ///Null if the user didn't provide a shipping address. /// - [Description("The shipping address to where the line items will be shipped.\nNull if the user did not provide a shipping address.")] + [Description("The shipping address to where the line items will be shipped.\nNull if the user didn't provide a shipping address.")] public MailingAddress? shippingAddress { get; set; } /// @@ -1480,9 +1480,9 @@ public class App : GraphQLObject, INode /// ///Corresponding AppInstallation for this shop and App. - ///Returns null if the App is not installed. + ///Returns null if the App isn't installed. /// - [Description("Corresponding AppInstallation for this shop and App.\nReturns null if the App is not installed.")] + [Description("Corresponding AppInstallation for this shop and App.\nReturns null if the App isn't installed.")] public AppInstallation? installation { get; set; } /// @@ -5584,6 +5584,11 @@ public enum BillingAttemptUserErrorCode /// [Description("Billing attempt rate limit exceeded - try later.")] THROTTLED, + /// + ///Failed to process the billing attempt. + /// + [Description("Failed to process the billing attempt.")] + PROCESSING_FAILED, } public static class BillingAttemptUserErrorCodeStringValues @@ -5602,6 +5607,7 @@ public static class BillingAttemptUserErrorCodeStringValues public const string CONTRACT_TERMINATED = @"CONTRACT_TERMINATED"; public const string CONTRACT_PAUSED = @"CONTRACT_PAUSED"; public const string THROTTLED = @"THROTTLED"; + public const string PROCESSING_FAILED = @"PROCESSING_FAILED"; } /// @@ -9153,11 +9159,21 @@ public enum CartTransformCreateUserErrorCode [Description("Function does not implement the required interface for this cart_transform function.")] FUNCTION_DOES_NOT_IMPLEMENT, /// + ///Shop must be on a Shopify Plus plan to activate functions from a custom app. + /// + [Description("Shop must be on a Shopify Plus plan to activate functions from a custom app.")] + CUSTOM_APP_FUNCTION_NOT_ELIGIBLE, + /// ///Could not create or update metafields. /// [Description("Could not create or update metafields.")] INVALID_METAFIELDS, /// + ///The maximum number of cart transforms per shop has been reached. + /// + [Description("The maximum number of cart transforms per shop has been reached.")] + MAXIMUM_CART_TRANSFORMS, + /// ///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.")] @@ -9175,7 +9191,9 @@ public static class CartTransformCreateUserErrorCodeStringValues public const string FUNCTION_NOT_FOUND = @"FUNCTION_NOT_FOUND"; public const string FUNCTION_ALREADY_REGISTERED = @"FUNCTION_ALREADY_REGISTERED"; 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 INVALID_METAFIELDS = @"INVALID_METAFIELDS"; + public const string MAXIMUM_CART_TRANSFORMS = @"MAXIMUM_CART_TRANSFORMS"; public const string MULTIPLE_FUNCTION_IDENTIFIERS = @"MULTIPLE_FUNCTION_IDENTIFIERS"; public const string MISSING_FUNCTION_IDENTIFIER = @"MISSING_FUNCTION_IDENTIFIER"; } @@ -10130,6 +10148,26 @@ public enum CashManagementDefaultReasonCodeEnum /// [Description("Cash payout.")] CASH_PAYOUT, + /// + ///Other. + /// + [Description("Other.")] + OTHER, + /// + ///Point of sale device payment session was automatically closed because a staff member logged out. + /// + [Description("Point of sale device payment session was automatically closed because a staff member logged out.")] + AUTO_END_SESSION_LOGOUT, + /// + ///Point of sale device payment session was automatically closed because the device switched to a different location. + /// + [Description("Point of sale device payment session was automatically closed because the device switched to a different location.")] + AUTO_END_SESSION_LOCATION_CHANGE, + /// + ///Point of sale device payment session was automatically opened by a cash payment at checkout. + /// + [Description("Point of sale device payment session was automatically opened by a cash payment at checkout.")] + AUTO_START_SESSION_CHECKOUT, } public static class CashManagementDefaultReasonCodeEnumStringValues @@ -10140,6 +10178,10 @@ public static class CashManagementDefaultReasonCodeEnumStringValues public const string PETTY_CASH = @"PETTY_CASH"; public const string TIP_PAYOUT = @"TIP_PAYOUT"; public const string CASH_PAYOUT = @"CASH_PAYOUT"; + public const string OTHER = @"OTHER"; + public const string AUTO_END_SESSION_LOGOUT = @"AUTO_END_SESSION_LOGOUT"; + public const string AUTO_END_SESSION_LOCATION_CHANGE = @"AUTO_END_SESSION_LOCATION_CHANGE"; + public const string AUTO_START_SESSION_CHECKOUT = @"AUTO_START_SESSION_CHECKOUT"; } /// @@ -10464,14 +10506,34 @@ public enum CashManagementSystemReasonCodeEnum ///Other. /// [Description("Other.")] + [Obsolete("Use CashManagementDefaultReasonCodeEnum.OTHER instead.")] OTHER, + /// + ///Point of sale device payment session was automatically closed because a staff member logged out. + /// + [Description("Point of sale device payment session was automatically closed because a staff member logged out.")] + AUTO_END_SESSION_LOGOUT, + /// + ///Point of sale device payment session was automatically closed because the device switched to a different location. + /// + [Description("Point of sale device payment session was automatically closed because the device switched to a different location.")] + AUTO_END_SESSION_LOCATION_CHANGE, + /// + ///Point of sale device payment session was automatically opened by a cash payment at checkout. + /// + [Description("Point of sale device payment session was automatically opened by a cash payment at checkout.")] + AUTO_START_SESSION_CHECKOUT, } public static class CashManagementSystemReasonCodeEnumStringValues { public const string FLOAT_SETUP = @"FLOAT_SETUP"; public const string CASH_PAYOUT = @"CASH_PAYOUT"; + [Obsolete("Use CashManagementDefaultReasonCodeEnum.OTHER instead.")] public const string OTHER = @"OTHER"; + public const string AUTO_END_SESSION_LOGOUT = @"AUTO_END_SESSION_LOGOUT"; + public const string AUTO_END_SESSION_LOCATION_CHANGE = @"AUTO_END_SESSION_LOCATION_CHANGE"; + public const string AUTO_START_SESSION_CHECKOUT = @"AUTO_START_SESSION_CHECKOUT"; } /// @@ -11909,9 +11971,9 @@ public static class ChannelCreateUserErrorCodeStringValues /// ///A specific selling surface within a [sales channel](https://shopify.dev/docs/apps/build/sales-channels) platform. A channel definition identifies where products can be sold. Definitions can represent entire platforms (like Facebook or TikTok) or specific sales channels within those platforms, such as Instagram Shops, Instagram Shopping, or TikTok Live. /// - ///Each definition includes the parent [`Channel`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Channel) name and subchannel name to indicate the selling surface hierarchy. The marketplace flag identifies whether this surface represents a marketplace channel such as shops on Facebook, Instagram, or Buy on Google. + ///Each definition includes the parent [`Channel`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Channel) name and subchannel name to indicate the selling surface hierarchy. /// - [Description("A specific selling surface within a [sales channel](https://shopify.dev/docs/apps/build/sales-channels) platform. A channel definition identifies where products can be sold. Definitions can represent entire platforms (like Facebook or TikTok) or specific sales channels within those platforms, such as Instagram Shops, Instagram Shopping, or TikTok Live.\n\nEach definition includes the parent [`Channel`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Channel) name and subchannel name to indicate the selling surface hierarchy. The marketplace flag identifies whether this surface represents a marketplace channel such as shops on Facebook, Instagram, or Buy on Google.")] + [Description("A specific selling surface within a [sales channel](https://shopify.dev/docs/apps/build/sales-channels) platform. A channel definition identifies where products can be sold. Definitions can represent entire platforms (like Facebook or TikTok) or specific sales channels within those platforms, such as Instagram Shops, Instagram Shopping, or TikTok Live.\n\nEach definition includes the parent [`Channel`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Channel) name and subchannel name to indicate the selling surface hierarchy.")] public class ChannelDefinition : GraphQLObject, INode { /// @@ -21807,11 +21869,6 @@ public static class CodeDiscountSortKeysStringValues ///[online stores](https://shopify.dev/docs/apps/build/online-store), ///[sales channels](https://shopify.dev/docs/apps/build/sales-channels), and marketing campaigns. /// - ///There are two types of collections: - /// - ///- **[Custom (manual) collections](https://help.shopify.com/manual/products/collections/manual-shopify-collection)**: You specify the products to include in a collection. - ///- **[Smart (automated) collections](https://help.shopify.com/manual/products/collections/automated-collections)**: You define rules, and products matching those rules are automatically included in the collection. - /// ///The `Collection` object provides information to: /// ///- Organize products by category, season, or promotion. @@ -21830,9 +21887,9 @@ public static class CodeDiscountSortKeysStringValues ///for unique layouts. They also support advanced features like translated content, resource feedback, ///and contextual publication for location-based catalogs. /// - ///Learn about [using metafields with smart collections](https://shopify.dev/docs/apps/build/custom-data/metafields/use-metafield-capabilities). + ///Learn about [using metafields with collection conditions](https://shopify.dev/docs/apps/build/custom-data/metafields/use-metafield-capabilities). /// - [Description("The `Collection` object represents a group of [products](https://shopify.dev/docs/api/admin-graphql/latest/objects/Product)\nthat merchants can organize to make their stores easier to browse and help customers find related products.\nCollections serve as the primary way to categorize and display products across\n[online stores](https://shopify.dev/docs/apps/build/online-store),\n[sales channels](https://shopify.dev/docs/apps/build/sales-channels), and marketing campaigns.\n\nThere are two types of collections:\n\n- **[Custom (manual) collections](https://help.shopify.com/manual/products/collections/manual-shopify-collection)**: You specify the products to include in a collection.\n- **[Smart (automated) collections](https://help.shopify.com/manual/products/collections/automated-collections)**: You define rules, and products matching those rules are automatically included in the collection.\n\nThe `Collection` object provides information to:\n\n- Organize products by category, season, or promotion.\n- Automate product grouping using rules (for example, by tag, type, or price).\n- Configure product sorting and display order (for example, alphabetical, best-selling, price, or manual).\n- Manage collection visibility and publication across sales channels.\n- Add rich descriptions, images, and metadata to enhance discovery.\n\n> Note:\n> Collections are unpublished by default. To make them available to customers,\nuse the [`publishablePublish`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/publishablePublish)\nmutation after creation.\n\nCollections can be displayed in a store with Shopify's theme system through [Liquid templates](https://shopify.dev/docs/storefronts/themes/architecture/templates/collection)\nand can be customized with [template suffixes](https://shopify.dev/docs/storefronts/themes/architecture/templates/alternate-templates)\nfor unique layouts. They also support advanced features like translated content, resource feedback,\nand contextual publication for location-based catalogs.\n\nLearn about [using metafields with smart collections](https://shopify.dev/docs/apps/build/custom-data/metafields/use-metafield-capabilities).")] + [Description("The `Collection` object represents a group of [products](https://shopify.dev/docs/api/admin-graphql/latest/objects/Product)\nthat merchants can organize to make their stores easier to browse and help customers find related products.\nCollections serve as the primary way to categorize and display products across\n[online stores](https://shopify.dev/docs/apps/build/online-store),\n[sales channels](https://shopify.dev/docs/apps/build/sales-channels), and marketing campaigns.\n\nThe `Collection` object provides information to:\n\n- Organize products by category, season, or promotion.\n- Automate product grouping using rules (for example, by tag, type, or price).\n- Configure product sorting and display order (for example, alphabetical, best-selling, price, or manual).\n- Manage collection visibility and publication across sales channels.\n- Add rich descriptions, images, and metadata to enhance discovery.\n\n> Note:\n> Collections are unpublished by default. To make them available to customers,\nuse the [`publishablePublish`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/publishablePublish)\nmutation after creation.\n\nCollections can be displayed in a store with Shopify's theme system through [Liquid templates](https://shopify.dev/docs/storefronts/themes/architecture/templates/collection)\nand can be customized with [template suffixes](https://shopify.dev/docs/storefronts/themes/architecture/templates/alternate-templates)\nfor unique layouts. They also support advanced features like translated content, resource feedback,\nand contextual publication for location-based catalogs.\n\nLearn about [using metafields with collection conditions](https://shopify.dev/docs/apps/build/custom-data/metafields/use-metafield-capabilities).")] public class Collection : GraphQLObject, IHasEvents, IHasMetafieldDefinitions, IHasMetafields, IHasPublishedTranslations, INode, IPublishable, IMetafieldReference, IMetafieldReferencer { /// @@ -21954,12 +22011,13 @@ public class Collection : GraphQLObject, IHasEvents, IHasMetafieldDe public Count? productsCount { get; set; } /// - ///The number of + ///The total number of ///[publications](https://shopify.dev/docs/api/admin-graphql/latest/objects/Publication) - ///that a resource is published to, without + ///that a resource is published to, including publications with ///[feedback errors](https://shopify.dev/docs/api/admin-graphql/latest/objects/ResourceFeedback). + ///To get a count that excludes publications with feedback errors, use `availablePublicationsCount`. /// - [Description("The number of\n[publications](https://shopify.dev/docs/api/admin-graphql/latest/objects/Publication)\nthat a resource is published to, without\n[feedback errors](https://shopify.dev/docs/api/admin-graphql/latest/objects/ResourceFeedback).")] + [Description("The total number of\n[publications](https://shopify.dev/docs/api/admin-graphql/latest/objects/Publication)\nthat a resource is published to, including publications with\n[feedback errors](https://shopify.dev/docs/api/admin-graphql/latest/objects/ResourceFeedback).\nTo get a count that excludes publications with feedback errors, use `availablePublicationsCount`.")] [Obsolete("Use `resourcePublicationsCount` instead.")] [NonNull] public int? publicationCount { get; set; } @@ -22017,26 +22075,31 @@ public class Collection : GraphQLObject, IHasEvents, IHasMetafieldDe public ResourcePublicationConnection? resourcePublications { get; set; } /// - ///The number of + ///The total number of ///[publications](https://shopify.dev/docs/api/admin-graphql/latest/objects/Publication) - ///that a resource is published to, without + ///that a resource is published to, including publications with ///[feedback errors](https://shopify.dev/docs/api/admin-graphql/latest/objects/ResourceFeedback). + ///To get a count that excludes publications with feedback errors, use `availablePublicationsCount`. /// - [Description("The number of\n[publications](https://shopify.dev/docs/api/admin-graphql/latest/objects/Publication)\nthat a resource is published to, without\n[feedback errors](https://shopify.dev/docs/api/admin-graphql/latest/objects/ResourceFeedback).")] + [Description("The total number of\n[publications](https://shopify.dev/docs/api/admin-graphql/latest/objects/Publication)\nthat a resource is published to, including publications with\n[feedback errors](https://shopify.dev/docs/api/admin-graphql/latest/objects/ResourceFeedback).\nTo get a count that excludes publications with feedback errors, use `availablePublicationsCount`.")] public Count? resourcePublicationsCount { get; set; } /// ///The list of resources that are either published or staged to be published to a ///[publication](https://shopify.dev/docs/api/admin-graphql/latest/objects/Publication). + ///By default, only publications to `APP` catalog types are returned. + ///For `Product` and `ProductVariant`, use the `catalogType` argument to retrieve + ///publications for other catalog types, such as `COMPANY_LOCATION` (B2B) or `MARKET`. + ///`Collection` only supports publications to `APP` catalog types. /// - [Description("The list of resources that are either published or staged to be published to a\n[publication](https://shopify.dev/docs/api/admin-graphql/latest/objects/Publication).")] + [Description("The list of resources that are either published or staged to be published to a\n[publication](https://shopify.dev/docs/api/admin-graphql/latest/objects/Publication).\nBy default, only publications to `APP` catalog types are returned.\nFor `Product` and `ProductVariant`, use the `catalogType` argument to retrieve\npublications for other catalog types, such as `COMPANY_LOCATION` (B2B) or `MARKET`.\n`Collection` only supports publications to `APP` catalog types.")] [NonNull] public ResourcePublicationV2Connection? resourcePublicationsV2 { get; set; } /// - ///For a smart (automated) collection, specifies the rules that determine whether a product is included. + ///Specifies the rules that determine whether a product is included. /// - [Description("For a smart (automated) collection, specifies the rules that determine whether a product is included.")] + [Description("Specifies the rules that determine whether a product is included.")] public CollectionRuleSet? ruleSet { get; set; } /// @@ -22511,9 +22574,9 @@ public class CollectionInput : GraphQLObject public ImageInput? image { get; set; } /// - ///Initial list of collection products. Only valid with `collectionCreate` and without rules. + ///Initial list of collection products. Only valid with `collectionCreate`. /// - [Description("Initial list of collection products. Only valid with `collectionCreate` and without rules.")] + [Description("Initial list of collection products. Only valid with `collectionCreate`.")] public IEnumerable? products { get; set; } /// @@ -22524,9 +22587,10 @@ public class CollectionInput : GraphQLObject public IEnumerable? publications { get; set; } /// - ///The rules used to assign products to the collection. + ///The rules used to assign products to the collection. This is the legacy smart-collection model; + ///use `sources` with `conditions` instead. Each `ruleSet` rule has an equivalent `condition`. /// - [Description("The rules used to assign products to the collection.")] + [Description("The rules used to assign products to the collection. This is the legacy smart-collection model;\nuse `sources` with `conditions` instead. Each `ruleSet` rule has an equivalent `condition`.")] public CollectionRuleSetInput? ruleSet { get; set; } /// @@ -22922,9 +22986,9 @@ public class CollectionRuleCategoryCondition : GraphQLObject - ///Specifies the attribute of a product being used to populate the smart collection. + ///Specifies the attribute of a product being used to populate the collection. /// - [Description("Specifies the attribute of a product being used to populate the smart collection.")] + [Description("Specifies the attribute of a product being used to populate the collection.")] public enum CollectionRuleColumn { /// @@ -22948,17 +23012,17 @@ public enum CollectionRuleColumn [Description("The [`product_taxonomy_node_id`](https://shopify.dev/api/admin-graphql/latest/objects/Product#field-Product.fields.productCategory) attribute.")] PRODUCT_TAXONOMY_NODE_ID, /// - ///This rule type is designed to dynamically include products in a smart collection based on their category id. + ///This rule type is designed to dynamically include products in a collection based on their category id. ///When a specific product category is set as a condition, this rule will match products that are directly assigned to the specified category. /// - [Description("This rule type is designed to dynamically include products in a smart collection based on their category id.\nWhen a specific product category is set as a condition, this rule will match products that are directly assigned to the specified category.")] + [Description("This rule type is designed to dynamically include products in a collection based on their category id.\nWhen a specific product category is set as a condition, this rule will match products that are directly assigned to the specified category.")] PRODUCT_CATEGORY_ID, /// - ///This rule type is designed to dynamically include products in a smart collection based on their category id. + ///This rule type is designed to dynamically include products in a collection based on their category id. ///When a specific product category is set as a condition, this rule will not only match products that are ///directly assigned to the specified category but also include any products categorized under any descendant of that category. /// - [Description("This rule type is designed to dynamically include products in a smart collection based on their category id.\nWhen a specific product category is set as a condition, this rule will not only match products that are\ndirectly assigned to the specified category but also include any products categorized under any descendant of that category.")] + [Description("This rule type is designed to dynamically include products in a collection based on their category id.\nWhen a specific product category is set as a condition, this rule will not only match products that are\ndirectly assigned to the specified category but also include any products categorized under any descendant of that category.")] PRODUCT_CATEGORY_ID_WITH_DESCENDANTS, /// ///The [`vendor`](https://shopify.dev/api/admin-graphql/latest/objects/Product#field-Product.fields.vendor) attribute. @@ -23046,21 +23110,21 @@ public interface ICollectionRuleConditionObject : IGraphQLObject } /// - ///Defines the available columns and relationships that can be used when creating rules for smart collections. This provides the schema for building automated collection logic based on product attributes. + ///Defines the available columns and relationships that can be used when creating rules for collections. This provides the schema for building automated collection logic based on product attributes. /// ///For example, merchants can create rules like "product type equals 'Shirts' " or "vendor contains 'Nike' " using the conditions defined in this object to automatically populate collections. /// ///Use `CollectionRuleConditions` to: - ///- Discovering valid field options for smart collection rule interfaces + ///- Discovering valid field options for collection rule interfaces ///- Understanding which conditions are available for automated collections ///- Exploring available product attributes for collection automation ///- Learning about proper field relationships for rule implementation /// - ///The conditions define which product fields can be used in smart collection rules and what types of comparisons are allowed for each field. + ///The conditions define which product fields can be used in collection rules and what types of comparisons are allowed for each field. /// - ///Learn more about [smart collections](https://shopify.dev/docs/api/admin-graphql/latest/objects/Collection). + ///Learn more about [collections with conditions](https://shopify.dev/docs/api/admin-graphql/latest/objects/Collection). /// - [Description("Defines the available columns and relationships that can be used when creating rules for smart collections. This provides the schema for building automated collection logic based on product attributes.\n\nFor example, merchants can create rules like \"product type equals 'Shirts'\" or \"vendor contains 'Nike'\" using the conditions defined in this object to automatically populate collections.\n\nUse `CollectionRuleConditions` to:\n- Discovering valid field options for smart collection rule interfaces\n- Understanding which conditions are available for automated collections\n- Exploring available product attributes for collection automation\n- Learning about proper field relationships for rule implementation\n\nThe conditions define which product fields can be used in smart collection rules and what types of comparisons are allowed for each field.\n\nLearn more about [smart collections](https://shopify.dev/docs/api/admin-graphql/latest/objects/Collection).")] + [Description("Defines the available columns and relationships that can be used when creating rules for collections. This provides the schema for building automated collection logic based on product attributes.\n\nFor example, merchants can create rules like \"product type equals 'Shirts'\" or \"vendor contains 'Nike'\" using the conditions defined in this object to automatically populate collections.\n\nUse `CollectionRuleConditions` to:\n- Discovering valid field options for collection rule interfaces\n- Understanding which conditions are available for automated collections\n- Exploring available product attributes for collection automation\n- Learning about proper field relationships for rule implementation\n\nThe conditions define which product fields can be used in collection rules and what types of comparisons are allowed for each field.\n\nLearn more about [collections with conditions](https://shopify.dev/docs/api/admin-graphql/latest/objects/Collection).")] public class CollectionRuleConditions : GraphQLObject { /// @@ -23148,9 +23212,9 @@ public class CollectionRuleInput : GraphQLObject } /// - ///Identifies a metafield definition used as a rule for the smart collection. + ///Identifies a metafield definition used as a rule for the collection. /// - [Description("Identifies a metafield definition used as a rule for the smart collection.")] + [Description("Identifies a metafield definition used as a rule for the collection.")] public class CollectionRuleMetafieldCondition : GraphQLObject, ICollectionRuleConditionObject, ICollectionRuleConditionsRuleObject { /// @@ -23624,6 +23688,21 @@ public enum ColumnDataType [Description("Represents a duration in days.")] DAY_DURATION, /// + ///Represents a cumulative value. + /// + [Description("Represents a cumulative value.")] + CUMULATIVE, + /// + ///Represents a geographic coordinate value. + /// + [Description("Represents a geographic coordinate value.")] + GEO_COORDINATE, + /// + ///Represents an entity reference value. + /// + [Description("Represents an entity reference value.")] + ENTITY, + /// ///Represents a hex color value. /// [Description("Represents a hex color value.")] @@ -23638,6 +23717,16 @@ public enum ColumnDataType /// [Description("Represents a rating value.")] RATING, + /// + ///Represents a unitless scalar value. + /// + [Description("Represents a unitless scalar value.")] + UNITLESS_SCALAR, + /// + ///Represents a multiplier value. + /// + [Description("Represents a multiplier value.")] + MULTIPLIER, } public static class ColumnDataTypeStringValues @@ -23670,9 +23759,14 @@ public static class ColumnDataTypeStringValues public const string MINUTE_DURATION = @"MINUTE_DURATION"; public const string HOUR_DURATION = @"HOUR_DURATION"; public const string DAY_DURATION = @"DAY_DURATION"; + public const string CUMULATIVE = @"CUMULATIVE"; + public const string GEO_COORDINATE = @"GEO_COORDINATE"; + public const string ENTITY = @"ENTITY"; public const string COLOR = @"COLOR"; public const string STRING_IDENTITY = @"STRING_IDENTITY"; public const string RATING = @"RATING"; + public const string UNITLESS_SCALAR = @"UNITLESS_SCALAR"; + public const string MULTIPLIER = @"MULTIPLIER"; } /// @@ -25680,10 +25774,9 @@ public class CompanyContactRole : GraphQLObject, INode public string? id { get; set; } /// - ///The name of a role. - ///For example, `admin` or `buyer`. + ///The name of a role. For example, `admin` or `buyer`. /// - [Description("The name of a role.\nFor example, `admin` or `buyer`.")] + [Description("The name of a role. For example, `admin` or `buyer`.")] [NonNull] public string? name { get; set; } @@ -32369,9 +32462,10 @@ public static class CustomerMergeErrorFieldTypeStringValues } /// - ///The input fields to override default customer merge rules. + ///The input fields to override default customer merge rules. These overrides are field-specific; they don't + ///provide a general way to force a particular customer ID to survive the merge. /// - [Description("The input fields to override default customer merge rules.")] + [Description("The input fields to override default customer merge rules. These overrides are field-specific; they don't\nprovide a general way to force a particular customer ID to survive the merge.")] public class CustomerMergeOverrideFields : GraphQLObject { /// @@ -32387,9 +32481,10 @@ public class CustomerMergeOverrideFields : GraphQLObject - ///The ID of the customer whose email will be kept. + ///The ID of the customer whose email will be kept. The selected customer must have an email address. When + ///this field is provided and valid, the selected customer is also the resulting customer after the merge. /// - [Description("The ID of the customer whose email will be kept.")] + [Description("The ID of the customer whose email will be kept. The selected customer must have an email address. When\nthis field is provided and valid, the selected customer is also the resulting customer after the merge.")] public string? customerIdOfEmailToKeep { get; set; } /// @@ -32430,9 +32525,9 @@ public class CustomerMergePayload : GraphQLObject public Job? job { get; set; } /// - ///The ID of the customer resulting from the merge. + ///The ID of the customer that's kept after the merge. Treat this ID as authoritative. /// - [Description("The ID of the customer resulting from the merge.")] + [Description("The ID of the customer that's kept after the merge. Treat this ID as authoritative.")] public string? resultingCustomerId { get; set; } /// @@ -32444,9 +32539,10 @@ public class CustomerMergePayload : GraphQLObject } /// - ///A preview of the results of a customer merge request. + ///A preview of the results of a customer merge request. Use `resultingCustomerId` to check which customer + ///would be kept before running `customerMerge`. /// - [Description("A preview of the results of a customer merge request.")] + [Description("A preview of the results of a customer merge request. Use `resultingCustomerId` to check which customer\nwould be kept before running `customerMerge`.")] public class CustomerMergePreview : GraphQLObject { /// @@ -32474,9 +32570,9 @@ public class CustomerMergePreview : GraphQLObject public CustomerMergePreviewDefaultFields? defaultFields { get; set; } /// - ///The resulting customer ID if the two customers are merged. + ///The ID of the customer that would be kept if the two customers were merged. /// - [Description("The resulting customer ID if the two customers are merged.")] + [Description("The ID of the customer that would be kept if the two customers were merged.")] public string? resultingCustomerId { get; set; } } @@ -32684,9 +32780,9 @@ public class CustomerMergeRequest : GraphQLObject public string? jobId { get; set; } /// - ///The ID of the customer resulting from the merge. + ///The ID of the customer that was kept after the merge. Treat this ID as authoritative. /// - [Description("The ID of the customer resulting from the merge.")] + [Description("The ID of the customer that was kept after the merge. Treat this ID as authoritative.")] [NonNull] public string? resultingCustomerId { get; set; } @@ -33779,6 +33875,7 @@ public class CustomerPhoneNumber : GraphQLObject ///The source from which the SMS marketing information for the customer was collected. /// [Description("The source from which the SMS marketing information for the customer was collected.")] + [Obsolete("Use `smsMarketingConsent.collectedFrom` instead.")] [EnumType(typeof(CustomerConsentCollectedFrom))] public string? marketingCollectedFrom { get; set; } @@ -33787,6 +33884,7 @@ public class CustomerPhoneNumber : GraphQLObject ///received when the marketing consent was updated. /// [Description("The marketing subscription opt-in level, as described by the M3AAWG best practices guidelines,\nreceived when the marketing consent was updated.")] + [Obsolete("Use `smsMarketingConsent.optInLevel` instead.")] [EnumType(typeof(CustomerMarketingOptInLevel))] public string? marketingOptInLevel { get; set; } @@ -33794,6 +33892,7 @@ public class CustomerPhoneNumber : GraphQLObject ///Whether the customer has subscribed to SMS marketing material. /// [Description("Whether the customer has subscribed to SMS marketing material.")] + [Obsolete("Use `smsMarketingConsent.state` instead.")] [NonNull] [EnumType(typeof(CustomerSmsMarketingState))] public string? marketingState { get; set; } @@ -33804,6 +33903,7 @@ public class CustomerPhoneNumber : GraphQLObject ///No date is provided if the email address never updated its marketing consent. /// [Description("The date and time at which the marketing consent was updated.\n\nNo date is provided if the email address never updated its marketing consent.")] + [Obsolete("Use `smsMarketingConsent.updatedAt` instead.")] public DateTime? marketingUpdatedAt { get; set; } /// @@ -33817,6 +33917,7 @@ public class CustomerPhoneNumber : GraphQLObject ///The location where the customer consented to receive marketing material by SMS. /// [Description("The location where the customer consented to receive marketing material by SMS.")] + [Obsolete("Use `smsMarketingConsent.sourceLocation` instead.")] public Location? sourceLocation { get; set; } } @@ -38928,9 +39029,9 @@ public interface IDepositConfiguration : IGraphQLObject } /// - ///The input fields configuring the deposit for a B2B buyer. + ///The input fields configuring the deposit requirement. /// - [Description("The input fields configuring the deposit for a B2B buyer.")] + [Description("The input fields configuring the deposit requirement.")] public class DepositInput : GraphQLObject { /// @@ -39823,9 +39924,11 @@ public class DiscountAutomaticAppInput : GraphQLObject - [Description("The\n[discount classes](https://help.shopify.com/manual/discounts/combining-discounts/discount-combinations)\nthat you can use in combination with\n[Shopify discount types](https://help.shopify.com/manual/discounts/discount-types).")] + [Description("The\n[discount classes](https://help.shopify.com/manual/discounts/combining-discounts/discount-combinations)\nthat you can use in combination with\n[Shopify discount types](https://help.shopify.com/manual/discounts/discount-types),\nand the product discount tags that determine which product discounts can apply\ntogether on the same cart line.")] public DiscountCombinesWithInput? combinesWith { get; set; } /// @@ -39864,7 +39967,11 @@ public class DiscountAutomaticAppInput : GraphQLObject ///A list of searchable keywords that are associated with the discount. /// - ///For example, a `loyalty` tag could be applied to discounts + ///Use these tags on product discounts to determine which other product discounts can + ///apply to the same cart line when you configure + ///`productDiscountsWithTagsOnSameCartLine` in `combinesWith`. + /// + ///For example, you can apply a `loyalty` tag to discounts ///that are associated with a loyalty program. /// ///Updating `tags` overwrites any existing tags that were previously added to the discount. @@ -39872,7 +39979,7 @@ public class DiscountAutomaticAppInput : GraphQLObject - [Description("A list of searchable keywords that are associated with the discount.\n\nFor example, a `loyalty` tag could be applied to discounts\nthat are associated with a loyalty program.\n\nUpdating `tags` overwrites any existing tags that were previously added to the discount.\nTo add new tags without overwriting existing tags, use the\n[`tagsAdd`](https://shopify.dev/api/admin-graphql/latest/mutations/tagsadd)\nmutation.")] + [Description("A list of searchable keywords that are associated with the discount.\n\nUse these tags on product discounts to determine which other product discounts can\napply to the same cart line when you configure\n`productDiscountsWithTagsOnSameCartLine` in `combinesWith`.\n\nFor example, you can apply a `loyalty` tag to discounts\nthat are associated with a loyalty program.\n\nUpdating `tags` overwrites any existing tags that were previously added to the discount.\nTo add new tags without overwriting existing tags, use the\n[`tagsAdd`](https://shopify.dev/api/admin-graphql/latest/mutations/tagsadd)\nmutation.")] public IEnumerable? tags { get; set; } /// @@ -40152,11 +40259,13 @@ public class DiscountAutomaticBasicInput : GraphQLObject ///The - ///[discount class](https://help.shopify.com/manual/discounts/combining-discounts/discount-combinations) + ///[discount classes](https://help.shopify.com/manual/discounts/combining-discounts/discount-combinations) ///that you can use in combination with - ///[Shopify discount types](https://help.shopify.com/manual/discounts/discount-types). + ///[Shopify discount types](https://help.shopify.com/manual/discounts/discount-types), + ///and the product discount tags that determine which product discounts can apply + ///together on the same cart line. /// - [Description("The\n[discount class](https://help.shopify.com/manual/discounts/combining-discounts/discount-combinations)\nthat you can use in combination with\n[Shopify discount types](https://help.shopify.com/manual/discounts/discount-types).")] + [Description("The\n[discount classes](https://help.shopify.com/manual/discounts/combining-discounts/discount-combinations)\nthat you can use in combination with\n[Shopify discount types](https://help.shopify.com/manual/discounts/discount-types),\nand the product discount tags that determine which product discounts can apply\ntogether on the same cart line.")] public DiscountCombinesWithInput? combinesWith { get; set; } /// @@ -40189,7 +40298,11 @@ public class DiscountAutomaticBasicInput : GraphQLObject ///A list of searchable keywords that are associated with the discount. /// - ///For example, a `loyalty` tag could be applied to discounts + ///Use these tags on product discounts to determine which other product discounts can + ///apply to the same cart line when you configure + ///`productDiscountsWithTagsOnSameCartLine` in `combinesWith`. + /// + ///For example, you can apply a `loyalty` tag to discounts ///that are associated with a loyalty program. /// ///Updating `tags` overwrites any existing tags that were previously added to the discount. @@ -40197,7 +40310,7 @@ public class DiscountAutomaticBasicInput : GraphQLObject - [Description("A list of searchable keywords that are associated with the discount.\n\nFor example, a `loyalty` tag could be applied to discounts\nthat are associated with a loyalty program.\n\nUpdating `tags` overwrites any existing tags that were previously added to the discount.\nTo add new tags without overwriting existing tags, use the\n[`tagsAdd`](https://shopify.dev/api/admin-graphql/latest/mutations/tagsadd)\nmutation.")] + [Description("A list of searchable keywords that are associated with the discount.\n\nUse these tags on product discounts to determine which other product discounts can\napply to the same cart line when you configure\n`productDiscountsWithTagsOnSameCartLine` in `combinesWith`.\n\nFor example, you can apply a `loyalty` tag to discounts\nthat are associated with a loyalty program.\n\nUpdating `tags` overwrites any existing tags that were previously added to the discount.\nTo add new tags without overwriting existing tags, use the\n[`tagsAdd`](https://shopify.dev/api/admin-graphql/latest/mutations/tagsadd)\nmutation.")] public IEnumerable? tags { get; set; } /// @@ -40475,11 +40588,13 @@ public class DiscountAutomaticBxgyInput : GraphQLObject ///The - ///[discount class](https://help.shopify.com/manual/discounts/combining-discounts/discount-combinations) + ///[discount classes](https://help.shopify.com/manual/discounts/combining-discounts/discount-combinations) ///that you can use in combination with - ///[Shopify discount types](https://help.shopify.com/manual/discounts/discount-types). + ///[Shopify discount types](https://help.shopify.com/manual/discounts/discount-types), + ///and the product discount tags that determine which product discounts can apply + ///together on the same cart line. /// - [Description("The\n[discount class](https://help.shopify.com/manual/discounts/combining-discounts/discount-combinations)\nthat you can use in combination with\n[Shopify discount types](https://help.shopify.com/manual/discounts/discount-types).")] + [Description("The\n[discount classes](https://help.shopify.com/manual/discounts/combining-discounts/discount-combinations)\nthat you can use in combination with\n[Shopify discount types](https://help.shopify.com/manual/discounts/discount-types),\nand the product discount tags that determine which product discounts can apply\ntogether on the same cart line.")] public DiscountCombinesWithInput? combinesWith { get; set; } /// @@ -40512,7 +40627,11 @@ public class DiscountAutomaticBxgyInput : GraphQLObject ///A list of searchable keywords that are associated with the discount. /// - ///For example, a `loyalty` tag could be applied to discounts + ///Use these tags on product discounts to determine which other product discounts can + ///apply to the same cart line when you configure + ///`productDiscountsWithTagsOnSameCartLine` in `combinesWith`. + /// + ///For example, you can apply a `loyalty` tag to discounts ///that are associated with a loyalty program. /// ///Updating `tags` overwrites any existing tags that were previously added to the discount. @@ -40520,7 +40639,7 @@ public class DiscountAutomaticBxgyInput : GraphQLObject - [Description("A list of searchable keywords that are associated with the discount.\n\nFor example, a `loyalty` tag could be applied to discounts\nthat are associated with a loyalty program.\n\nUpdating `tags` overwrites any existing tags that were previously added to the discount.\nTo add new tags without overwriting existing tags, use the\n[`tagsAdd`](https://shopify.dev/api/admin-graphql/latest/mutations/tagsadd)\nmutation.")] + [Description("A list of searchable keywords that are associated with the discount.\n\nUse these tags on product discounts to determine which other product discounts can\napply to the same cart line when you configure\n`productDiscountsWithTagsOnSameCartLine` in `combinesWith`.\n\nFor example, you can apply a `loyalty` tag to discounts\nthat are associated with a loyalty program.\n\nUpdating `tags` overwrites any existing tags that were previously added to the discount.\nTo add new tags without overwriting existing tags, use the\n[`tagsAdd`](https://shopify.dev/api/admin-graphql/latest/mutations/tagsadd)\nmutation.")] public IEnumerable? tags { get; set; } /// @@ -40932,7 +41051,11 @@ public class DiscountAutomaticFreeShippingInput : GraphQLObject ///A list of searchable keywords that are associated with the discount. /// - ///For example, a `loyalty` tag could be applied to discounts + ///Use these tags on product discounts to determine which other product discounts can + ///apply to the same cart line when you configure + ///`productDiscountsWithTagsOnSameCartLine` in `combinesWith`. + /// + ///For example, you can apply a `loyalty` tag to discounts ///that are associated with a loyalty program. /// ///Updating `tags` overwrites any existing tags that were previously added to the discount. @@ -40940,7 +41063,7 @@ public class DiscountAutomaticFreeShippingInput : GraphQLObject - [Description("A list of searchable keywords that are associated with the discount.\n\nFor example, a `loyalty` tag could be applied to discounts\nthat are associated with a loyalty program.\n\nUpdating `tags` overwrites any existing tags that were previously added to the discount.\nTo add new tags without overwriting existing tags, use the\n[`tagsAdd`](https://shopify.dev/api/admin-graphql/latest/mutations/tagsadd)\nmutation.")] + [Description("A list of searchable keywords that are associated with the discount.\n\nUse these tags on product discounts to determine which other product discounts can\napply to the same cart line when you configure\n`productDiscountsWithTagsOnSameCartLine` in `combinesWith`.\n\nFor example, you can apply a `loyalty` tag to discounts\nthat are associated with a loyalty program.\n\nUpdating `tags` overwrites any existing tags that were previously added to the discount.\nTo add new tags without overwriting existing tags, use the\n[`tagsAdd`](https://shopify.dev/api/admin-graphql/latest/mutations/tagsadd)\nmutation.")] public IEnumerable? tags { get; set; } /// @@ -41680,9 +41803,11 @@ public class DiscountCodeAppInput : GraphQLObject ///The ///[discount classes](https://help.shopify.com/manual/discounts/combining-discounts/discount-combinations) ///that you can use in combination with - ///[Shopify discount types](https://help.shopify.com/manual/discounts/discount-types). + ///[Shopify discount types](https://help.shopify.com/manual/discounts/discount-types), + ///and the product discount tags that determine which product discounts can apply + ///together on the same cart line. /// - [Description("The\n[discount classes](https://help.shopify.com/manual/discounts/combining-discounts/discount-combinations)\nthat you can use in combination with\n[Shopify discount types](https://help.shopify.com/manual/discounts/discount-types).")] + [Description("The\n[discount classes](https://help.shopify.com/manual/discounts/combining-discounts/discount-combinations)\nthat you can use in combination with\n[Shopify discount types](https://help.shopify.com/manual/discounts/discount-types),\nand the product discount tags that determine which product discounts can apply\ntogether on the same cart line.")] public DiscountCombinesWithInput? combinesWith { get; set; } /// @@ -41746,7 +41871,11 @@ public class DiscountCodeAppInput : GraphQLObject /// ///A list of searchable keywords that are associated with the discount. /// - ///For example, a `loyalty` tag could be applied to discounts + ///Use these tags on product discounts to determine which other product discounts can + ///apply to the same cart line when you configure + ///`productDiscountsWithTagsOnSameCartLine` in `combinesWith`. + /// + ///For example, you can apply a `loyalty` tag to discounts ///that are associated with a loyalty program. /// ///Updating `tags` overwrites any existing tags that were previously added to the discount. @@ -41754,7 +41883,7 @@ public class DiscountCodeAppInput : GraphQLObject ///[`tagsAdd`](https://shopify.dev/api/admin-graphql/latest/mutations/tagsadd) ///mutation. /// - [Description("A list of searchable keywords that are associated with the discount.\n\nFor example, a `loyalty` tag could be applied to discounts\nthat are associated with a loyalty program.\n\nUpdating `tags` overwrites any existing tags that were previously added to the discount.\nTo add new tags without overwriting existing tags, use the\n[`tagsAdd`](https://shopify.dev/api/admin-graphql/latest/mutations/tagsadd)\nmutation.")] + [Description("A list of searchable keywords that are associated with the discount.\n\nUse these tags on product discounts to determine which other product discounts can\napply to the same cart line when you configure\n`productDiscountsWithTagsOnSameCartLine` in `combinesWith`.\n\nFor example, you can apply a `loyalty` tag to discounts\nthat are associated with a loyalty program.\n\nUpdating `tags` overwrites any existing tags that were previously added to the discount.\nTo add new tags without overwriting existing tags, use the\n[`tagsAdd`](https://shopify.dev/api/admin-graphql/latest/mutations/tagsadd)\nmutation.")] public IEnumerable? tags { get; set; } /// @@ -42126,11 +42255,13 @@ public class DiscountCodeBasicInput : GraphQLObject { /// ///The - ///[discount class](https://help.shopify.com/manual/discounts/combining-discounts/discount-combinations) + ///[discount classes](https://help.shopify.com/manual/discounts/combining-discounts/discount-combinations) ///that you can use in combination with - ///[Shopify discount types](https://help.shopify.com/manual/discounts/discount-types). + ///[Shopify discount types](https://help.shopify.com/manual/discounts/discount-types), + ///and the product discount tags that determine which product discounts can apply + ///together on the same cart line. /// - [Description("The\n[discount class](https://help.shopify.com/manual/discounts/combining-discounts/discount-combinations)\nthat you can use in combination with\n[Shopify discount types](https://help.shopify.com/manual/discounts/discount-types).")] + [Description("The\n[discount classes](https://help.shopify.com/manual/discounts/combining-discounts/discount-combinations)\nthat you can use in combination with\n[Shopify discount types](https://help.shopify.com/manual/discounts/discount-types),\nand the product discount tags that determine which product discounts can apply\ntogether on the same cart line.")] public DiscountCombinesWithInput? combinesWith { get; set; } /// @@ -42188,7 +42319,11 @@ public class DiscountCodeBasicInput : GraphQLObject /// ///A list of searchable keywords that are associated with the discount. /// - ///For example, a `loyalty` tag could be applied to discounts + ///Use these tags on product discounts to determine which other product discounts can + ///apply to the same cart line when you configure + ///`productDiscountsWithTagsOnSameCartLine` in `combinesWith`. + /// + ///For example, you can apply a `loyalty` tag to discounts ///that are associated with a loyalty program. /// ///Updating `tags` overwrites any existing tags that were previously added to the discount. @@ -42196,7 +42331,7 @@ public class DiscountCodeBasicInput : GraphQLObject ///[`tagsAdd`](https://shopify.dev/api/admin-graphql/latest/mutations/tagsadd) ///mutation. /// - [Description("A list of searchable keywords that are associated with the discount.\n\nFor example, a `loyalty` tag could be applied to discounts\nthat are associated with a loyalty program.\n\nUpdating `tags` overwrites any existing tags that were previously added to the discount.\nTo add new tags without overwriting existing tags, use the\n[`tagsAdd`](https://shopify.dev/api/admin-graphql/latest/mutations/tagsadd)\nmutation.")] + [Description("A list of searchable keywords that are associated with the discount.\n\nUse these tags on product discounts to determine which other product discounts can\napply to the same cart line when you configure\n`productDiscountsWithTagsOnSameCartLine` in `combinesWith`.\n\nFor example, you can apply a `loyalty` tag to discounts\nthat are associated with a loyalty program.\n\nUpdating `tags` overwrites any existing tags that were previously added to the discount.\nTo add new tags without overwriting existing tags, use the\n[`tagsAdd`](https://shopify.dev/api/admin-graphql/latest/mutations/tagsadd)\nmutation.")] public IEnumerable? tags { get; set; } /// @@ -42546,11 +42681,13 @@ public class DiscountCodeBxgyInput : GraphQLObject { /// ///The - ///[discount class](https://help.shopify.com/manual/discounts/combining-discounts/discount-combinations) + ///[discount classes](https://help.shopify.com/manual/discounts/combining-discounts/discount-combinations) ///that you can use in combination with - ///[Shopify discount types](https://help.shopify.com/manual/discounts/discount-types). + ///[Shopify discount types](https://help.shopify.com/manual/discounts/discount-types), + ///and the product discount tags that determine which product discounts can apply + ///together on the same cart line. /// - [Description("The\n[discount class](https://help.shopify.com/manual/discounts/combining-discounts/discount-combinations)\nthat you can use in combination with\n[Shopify discount types](https://help.shopify.com/manual/discounts/discount-types).")] + [Description("The\n[discount classes](https://help.shopify.com/manual/discounts/combining-discounts/discount-combinations)\nthat you can use in combination with\n[Shopify discount types](https://help.shopify.com/manual/discounts/discount-types),\nand the product discount tags that determine which product discounts can apply\ntogether on the same cart line.")] public DiscountCombinesWithInput? combinesWith { get; set; } /// @@ -42608,7 +42745,11 @@ public class DiscountCodeBxgyInput : GraphQLObject /// ///A list of searchable keywords that are associated with the discount. /// - ///For example, a `loyalty` tag could be applied to discounts + ///Use these tags on product discounts to determine which other product discounts can + ///apply to the same cart line when you configure + ///`productDiscountsWithTagsOnSameCartLine` in `combinesWith`. + /// + ///For example, you can apply a `loyalty` tag to discounts ///that are associated with a loyalty program. /// ///Updating `tags` overwrites any existing tags that were previously added to the discount. @@ -42616,7 +42757,7 @@ public class DiscountCodeBxgyInput : GraphQLObject ///[`tagsAdd`](https://shopify.dev/api/admin-graphql/latest/mutations/tagsadd) ///mutation. /// - [Description("A list of searchable keywords that are associated with the discount.\n\nFor example, a `loyalty` tag could be applied to discounts\nthat are associated with a loyalty program.\n\nUpdating `tags` overwrites any existing tags that were previously added to the discount.\nTo add new tags without overwriting existing tags, use the\n[`tagsAdd`](https://shopify.dev/api/admin-graphql/latest/mutations/tagsadd)\nmutation.")] + [Description("A list of searchable keywords that are associated with the discount.\n\nUse these tags on product discounts to determine which other product discounts can\napply to the same cart line when you configure\n`productDiscountsWithTagsOnSameCartLine` in `combinesWith`.\n\nFor example, you can apply a `loyalty` tag to discounts\nthat are associated with a loyalty program.\n\nUpdating `tags` overwrites any existing tags that were previously added to the discount.\nTo add new tags without overwriting existing tags, use the\n[`tagsAdd`](https://shopify.dev/api/admin-graphql/latest/mutations/tagsadd)\nmutation.")] public IEnumerable? tags { get; set; } /// @@ -43044,7 +43185,11 @@ public class DiscountCodeFreeShippingInput : GraphQLObject ///A list of searchable keywords that are associated with the discount. /// - ///For example, a `loyalty` tag could be applied to discounts + ///Use these tags on product discounts to determine which other product discounts can + ///apply to the same cart line when you configure + ///`productDiscountsWithTagsOnSameCartLine` in `combinesWith`. + /// + ///For example, you can apply a `loyalty` tag to discounts ///that are associated with a loyalty program. /// ///Updating `tags` overwrites any existing tags that were previously added to the discount. @@ -43052,7 +43197,7 @@ public class DiscountCodeFreeShippingInput : GraphQLObject - [Description("A list of searchable keywords that are associated with the discount.\n\nFor example, a `loyalty` tag could be applied to discounts\nthat are associated with a loyalty program.\n\nUpdating `tags` overwrites any existing tags that were previously added to the discount.\nTo add new tags without overwriting existing tags, use the\n[`tagsAdd`](https://shopify.dev/api/admin-graphql/latest/mutations/tagsadd)\nmutation.")] + [Description("A list of searchable keywords that are associated with the discount.\n\nUse these tags on product discounts to determine which other product discounts can\napply to the same cart line when you configure\n`productDiscountsWithTagsOnSameCartLine` in `combinesWith`.\n\nFor example, you can apply a `loyalty` tag to discounts\nthat are associated with a loyalty program.\n\nUpdating `tags` overwrites any existing tags that were previously added to the discount.\nTo add new tags without overwriting existing tags, use the\n[`tagsAdd`](https://shopify.dev/api/admin-graphql/latest/mutations/tagsadd)\nmutation.")] public IEnumerable? tags { get; set; } /// @@ -43336,6 +43481,31 @@ public class DiscountCombinesWith : GraphQLObject [NonNull] public bool? productDiscounts { get; set; } + /// + ///Controls which product discounts can apply together on the same cart line. By + ///default, only one product discount applies per line. Available only on a Shopify + ///Plus plan and requires the `productDiscounts` field to be set to `true`. + /// + ///For discounts to apply together, they must match tags in both directions. Each + ///discount has two tag sets: the tags that identify the discount, and the tags that + ///it agrees to apply with. Use the `tags` field on the discount input to set the + ///discount's own tags. This field returns the tags that this discount agrees to + ///apply with. Two discounts apply together only if each one allows at least one tag + ///that the other is tagged with. Any number of product discounts can apply to the + ///same line if this two-way match holds for every pair in the group. + /// + ///Example: Discount A is tagged with `LOYALTY` and allows `SEASONAL`, and Discount B + ///is tagged with `SEASONAL` and allows `LOYALTY`. They apply together. To add a + ///third discount, it must meet the same mutual-match rule with both A and B. + /// + ///Buy X Get Y discounts stack only on the customer-gets products (GY), not the + ///customer-buys products (BX). See + ///[Limitations for discount combinations](https://help.shopify.com/manual/discounts/discount-combinations#considerations) + ///for details. + /// + [Description("Controls which product discounts can apply together on the same cart line. By\ndefault, only one product discount applies per line. Available only on a Shopify\nPlus plan and requires the `productDiscounts` field to be set to `true`.\n\nFor discounts to apply together, they must match tags in both directions. Each\ndiscount has two tag sets: the tags that identify the discount, and the tags that\nit agrees to apply with. Use the `tags` field on the discount input to set the\ndiscount's own tags. This field returns the tags that this discount agrees to\napply with. Two discounts apply together only if each one allows at least one tag\nthat the other is tagged with. Any number of product discounts can apply to the\nsame line if this two-way match holds for every pair in the group.\n\nExample: Discount A is tagged with `LOYALTY` and allows `SEASONAL`, and Discount B\nis tagged with `SEASONAL` and allows `LOYALTY`. They apply together. To add a\nthird discount, it must meet the same mutual-match rule with both A and B.\n\nBuy X Get Y discounts stack only on the customer-gets products (GY), not the\ncustomer-buys products (BX). See\n[Limitations for discount combinations](https://help.shopify.com/manual/discounts/discount-combinations#considerations)\nfor details.")] + public IEnumerable? productDiscountsWithTagsOnSameCartLine { get; set; } + /// ///Whether the discount combines with the ///[shipping discount](https://help.shopify.com/manual/discounts/combining-discounts/discount-combinations) @@ -43376,6 +43546,31 @@ public class DiscountCombinesWithInput : GraphQLObject [Description("Whether the discount combines\nwith the\n[shipping discount](https://help.shopify.com/manual/discounts/combining-discounts/discount-combinations)\nclass.")] public bool? shippingDiscounts { get; set; } + + /// + ///Controls which product discounts can apply together on the same cart line. By + ///default, only one product discount applies per line. Available only on a Shopify + ///Plus plan and requires the `productDiscounts` field to be set to `true`. + /// + ///For discounts to apply together, they must match tags in both directions. Each + ///discount has two tag sets: the tags that identify the discount, and the tags that + ///it agrees to apply with. Use the `tags` field on the discount input to set the + ///discount's own tags. Use this field to set the tags that the discount can apply + ///with. Two discounts apply together only if each one allows at least one tag that + ///the other is tagged with. Any number of product discounts can apply to the same + ///line if this two-way match holds for every pair in the group. + /// + ///Example: Discount A is tagged with `LOYALTY` and allows `SEASONAL`, and Discount B + ///is tagged with `SEASONAL` and allows `LOYALTY`. They apply together. To add a + ///third discount, it must meet the same mutual-match rule with both A and B. + /// + ///Buy X Get Y discounts stack only on the customer-gets products (GY), not the + ///customer-buys products (BX). See + ///[Limitations for discount combinations](https://help.shopify.com/manual/discounts/discount-combinations#considerations) + ///for details. + /// + [Description("Controls which product discounts can apply together on the same cart line. By\ndefault, only one product discount applies per line. Available only on a Shopify\nPlus plan and requires the `productDiscounts` field to be set to `true`.\n\nFor discounts to apply together, they must match tags in both directions. Each\ndiscount has two tag sets: the tags that identify the discount, and the tags that\nit agrees to apply with. Use the `tags` field on the discount input to set the\ndiscount's own tags. Use this field to set the tags that the discount can apply\nwith. Two discounts apply together only if each one allows at least one tag that\nthe other is tagged with. Any number of product discounts can apply to the same\nline if this two-way match holds for every pair in the group.\n\nExample: Discount A is tagged with `LOYALTY` and allows `SEASONAL`, and Discount B\nis tagged with `SEASONAL` and allows `LOYALTY`. They apply together. To add a\nthird discount, it must meet the same mutual-match rule with both A and B.\n\nBuy X Get Y discounts stack only on the customer-gets products (GY), not the\ncustomer-buys products (BX). See\n[Limitations for discount combinations](https://help.shopify.com/manual/discounts/discount-combinations#considerations)\nfor details.")] + public ProductDiscountsWithTagsOnSameCartLineInput? productDiscountsWithTagsOnSameCartLine { get; set; } } /// @@ -44044,6 +44239,31 @@ public enum DiscountErrorCode /// [Description("The number of tags exceeds the maximum of 5.")] TOO_MANY_TAGS, + /// + ///The number of tags in `productDiscountsWithTagsOnSameCartLine` exceeds the maximum of 10. + /// + [Description("The number of tags in `productDiscountsWithTagsOnSameCartLine` exceeds the maximum of 10.")] + TOO_MANY_PRODUCT_DISCOUNTS_WITH_TAGS_ON_SAME_CART_LINE, + /// + ///The `productDiscountsWithTagsOnSameCartLine` field is only valid for discounts with the PRODUCT discount class. + /// + [Description("The `productDiscountsWithTagsOnSameCartLine` field is only valid for discounts with the PRODUCT discount class.")] + INVALID_PRODUCT_DISCOUNTS_WITH_TAGS_ON_SAME_CART_LINE_FOR_DISCOUNT_CLASS, + /// + ///The `productDiscountsWithTagsOnSameCartLine` field can only be specified when `productDiscounts` is true. + /// + [Description("The `productDiscountsWithTagsOnSameCartLine` field can only be specified when `productDiscounts` is true.")] + INVALID_PRODUCT_DISCOUNTS_WITH_TAGS_ON_SAME_CART_LINE_WITHOUT_PRODUCT_DISCOUNTS, + /// + ///The `productDiscounts` field can't be set to false when `productDiscountsWithTagsOnSameCartLine` tags exist on the discount. + /// + [Description("The `productDiscounts` field can't be set to false when `productDiscountsWithTagsOnSameCartLine` tags exist on the discount.")] + INVALID_PRODUCT_DISCOUNTS_FALSE_WITH_EXISTING_TAGS_ON_SAME_CART_LINE, + /// + ///The shop's plan does not allow setting `productDiscountsWithTagsOnSameCartLine`. + /// + [Description("The shop's plan does not allow setting `productDiscountsWithTagsOnSameCartLine`.")] + PRODUCT_DISCOUNTS_WITH_TAGS_ON_SAME_CART_LINE_NOT_ENTITLED, } public static class DiscountErrorCodeStringValues @@ -44081,6 +44301,11 @@ public static class DiscountErrorCodeStringValues public const string MULTIPLE_FUNCTION_IDENTIFIERS = @"MULTIPLE_FUNCTION_IDENTIFIERS"; public const string INVALID_TAG_LENGTH = @"INVALID_TAG_LENGTH"; public const string TOO_MANY_TAGS = @"TOO_MANY_TAGS"; + public const string TOO_MANY_PRODUCT_DISCOUNTS_WITH_TAGS_ON_SAME_CART_LINE = @"TOO_MANY_PRODUCT_DISCOUNTS_WITH_TAGS_ON_SAME_CART_LINE"; + public const string INVALID_PRODUCT_DISCOUNTS_WITH_TAGS_ON_SAME_CART_LINE_FOR_DISCOUNT_CLASS = @"INVALID_PRODUCT_DISCOUNTS_WITH_TAGS_ON_SAME_CART_LINE_FOR_DISCOUNT_CLASS"; + public const string INVALID_PRODUCT_DISCOUNTS_WITH_TAGS_ON_SAME_CART_LINE_WITHOUT_PRODUCT_DISCOUNTS = @"INVALID_PRODUCT_DISCOUNTS_WITH_TAGS_ON_SAME_CART_LINE_WITHOUT_PRODUCT_DISCOUNTS"; + public const string INVALID_PRODUCT_DISCOUNTS_FALSE_WITH_EXISTING_TAGS_ON_SAME_CART_LINE = @"INVALID_PRODUCT_DISCOUNTS_FALSE_WITH_EXISTING_TAGS_ON_SAME_CART_LINE"; + public const string PRODUCT_DISCOUNTS_WITH_TAGS_ON_SAME_CART_LINE_NOT_ENTITLED = @"PRODUCT_DISCOUNTS_WITH_TAGS_ON_SAME_CART_LINE_NOT_ENTITLED"; } /// @@ -46723,6 +46948,7 @@ public class DraftOrderDiscountNotAppliedWarning : GraphQLObject [Description("The price rule that can't be applied.")] + [Obsolete("Use discountCode and discountTitle instead. This field will be removed in 2026-10.")] public PriceRule? priceRule { get; set; } } @@ -46933,16 +47159,10 @@ public class DraftOrderInput : GraphQLObject public PurchasingEntityInput? purchasingEntity { get; set; } /// - ///The source of the checkout. - ///To use this field for sales attribution, you must register the channels that your app is managing. - ///You can register the channels that your app is managing by completing - ///[this Google Form](https://docs.google.com/forms/d/e/1FAIpQLScmVTZRQNjOJ7RD738mL1lGeFjqKVe_FM2tO9xsm21QEo5Ozg/viewform?usp=sf_link). - ///After you've submitted your request, you need to wait for your request to be processed by Shopify. - ///You can find a list of your channels in the Partner Dashboard, in your app's Marketplace extension. - ///You need to specify the handle as the `source_name` value in your request. - ///The handle is the channel that the order was placed from. + ///The source channel that the order is attributed to. Set this to the handle of an order attribution definition configured for your sales channel app, such as `youtube` or `channel:amazon-us`. + ///To set up order attribution for your app, follow the [order attribution guide](https://shopify.dev/docs/apps/build/sales-channels/order-attribution). /// - [Description("The source of the checkout.\nTo use this field for sales attribution, you must register the channels that your app is managing.\nYou can register the channels that your app is managing by completing\n[this Google Form](https://docs.google.com/forms/d/e/1FAIpQLScmVTZRQNjOJ7RD738mL1lGeFjqKVe_FM2tO9xsm21QEo5Ozg/viewform?usp=sf_link).\nAfter you've submitted your request, you need to wait for your request to be processed by Shopify.\nYou can find a list of your channels in the Partner Dashboard, in your app's Marketplace extension.\nYou need to specify the handle as the `source_name` value in your request.\nThe handle is the channel that the order was placed from.")] + [Description("The source channel that the order is attributed to. Set this to the handle of an order attribution definition configured for your sales channel app, such as `youtube` or `channel:amazon-us`.\nTo set up order attribution for your app, follow the [order attribution guide](https://shopify.dev/docs/apps/build/sales-channels/order-attribution).")] public string? sourceName { get; set; } /// @@ -50339,6 +50559,11 @@ public enum FilesErrorCode /// [Description("Invalid duplicate resolution mode provided.")] INVALID_DUPLICATE_RESOLUTION_MODE, + /// + ///Media cannot be modified. It is currently being modified by another operation. + /// + [Description("Media cannot be modified. It is currently being modified by another operation.")] + MEDIA_CANNOT_BE_MODIFIED, } public static class FilesErrorCodeStringValues @@ -50371,6 +50596,7 @@ public static class FilesErrorCodeStringValues public const string REFERENCE_TARGET_DOES_NOT_EXIST = @"REFERENCE_TARGET_DOES_NOT_EXIST"; public const string TOO_MANY_FILE_REFERENCE = @"TOO_MANY_FILE_REFERENCE"; public const string INVALID_DUPLICATE_RESOLUTION_MODE = @"INVALID_DUPLICATE_RESOLUTION_MODE"; + public const string MEDIA_CANNOT_BE_MODIFIED = @"MEDIA_CANNOT_BE_MODIFIED"; } /// @@ -55167,6 +55393,7 @@ public class FulfillmentTrackingInfo : GraphQLObject /// * Sendle /// * SF Express /// * SFC Fulfillment + /// * ShipBob /// * SHREE NANDAN COURIER /// * Singapore Post /// * Southwest Air Cargo @@ -55217,7 +55444,7 @@ public class FulfillmentTrackingInfo : GraphQLObject /// * **United States**: GLS, Alliance Air Freight, Pilot Freight, LSO, Old Dominion, Pandion, R+L Carriers, Southwest Air Cargo /// * **South Africa**: Fastway, Skynet. /// - [Description("The name of the tracking company.\n\nFor tracking company names from the list below\nShopify will automatically build tracking URLs for all provided tracking numbers,\nwhich will make the tracking numbers clickable in the interface.\n\nAdditionally, for the tracking companies listed on the\n[Shipping Carriers help page](https://help.shopify.com/manual/shipping/understanding-shipping/shipping-carriers#integrated-shipping-carriers)\nShopify will automatically update the fulfillment's `shipment_status` field during the fulfillment process.\n\n### Supported tracking companies\n\nThe following tracking companies display for shops located in any country:\n\n * 4PX\n * AGS\n * Amazon\n * Amazon Logistics UK\n * An Post\n * Anjun Logistics\n * APC\n * Asendia USA\n * Australia Post\n * Bonshaw\n * BPost\n * BPost International\n * Canada Post\n * Canpar\n * CDL Last Mile\n * China Post\n * Chronopost\n * Chukou1\n * Colissimo\n * Comingle\n * Coordinadora\n * Correios\n * Correos\n * CTT\n * CTT Express\n * Cyprus Post\n * Delnext\n * Deutsche Post\n * DHL eCommerce\n * DHL eCommerce Asia\n * DHL Express\n * DPD\n * DPD Local\n * DPD UK\n * DTD Express\n * DX\n * Eagle\n * Estes\n * Evri\n * FedEx\n * First Global Logistics\n * First Line\n * FSC\n * Fulfilla\n * GLS\n * Guangdong Weisuyi Information Technology (WSE)\n * Heppner Internationale Spedition GmbH & Co.\n * Iceland Post\n * IDEX\n * Israel Post\n * Japan Post (EN)\n * Japan Post (JA)\n * La Poste Colissimo\n * La Poste Burkina Faso\n * Lasership\n * Latvia Post\n * Lietuvos Paštas\n * Logisters\n * Lone Star Overnight\n * M3 Logistics\n * Meteor Space\n * Mondial Relay\n * New Zealand Post\n * NinjaVan\n * North Russia Supply Chain (Shenzhen) Co.\n * OnTrac\n * Packeta\n * Pago Logistics\n * Ping An Da Tengfei Express\n * Pitney Bowes\n * Portal PostNord\n * Poste Italiane\n * PostNL\n * PostNord DK\n * PostNord NO\n * PostNord SE\n * Purolator\n * Qxpress\n * Qyun Express\n * Royal Mail\n * Royal Shipments\n * Sagawa (EN)\n * Sagawa (JA)\n * Sendle\n * SF Express\n * SFC Fulfillment\n * SHREE NANDAN COURIER\n * Singapore Post\n * Southwest Air Cargo\n * StarTrack\n * Step Forward Freight\n * Swiss Post\n * TForce Final Mile\n * Tinghao\n * TNT\n * Toll IPEC\n * United Delivery Service\n * UPS\n * USPS\n * Venipak\n * We Post\n * Whistl\n * Wizmo\n * WMYC\n * Xpedigo\n * XPO Logistics\n * Yamato (EN)\n * Yamato (JA)\n * YiFan Express\n * YunExpress\n\nThe following tracking companies are displayed for shops located in specific countries:\n\n * **Australia**: Australia Post, Sendle, Aramex Australia, TNT Australia, Hunter Express, Couriers Please, Bonds, Allied Express, Direct Couriers, Northline, GO Logistics\n * **Austria**: Österreichische Post\n * **Bulgaria**: Speedy\n * **Canada**: Intelcom, BoxKnight, Loomis, GLS\n * **China**: China Post, DHL eCommerce Asia, WanbExpress, YunExpress, Anjun Logistics, SFC Fulfillment, FSC\n * **Czechia**: Zásilkovna\n * **Germany**: Deutsche Post (DE), Deutsche Post (EN), DHL, DHL Express, Swiship, Hermes, GLS\n * **Spain**: SEUR\n * **France**: Colissimo, Mondial Relay, Colis Privé, GLS\n * **United Kingdom**: Evri, DPD UK, Parcelforce, Yodel, DHL Parcel, Tuffnells\n * **Greece**: ACS Courier\n * **Hong Kong SAR**: SF Express\n * **Ireland**: Fastway, DPD Ireland\n * **India**: DTDC, India Post, Delhivery, Gati KWE, Professional Couriers, XpressBees, Ecom Express, Ekart, Shadowfax, Bluedart\n * **Italy**: BRT, GLS Italy\n * **Japan**: エコ配, 西濃運輸, 西濃スーパーエキスプレス, 福山通運, 日本通運, 名鉄運輸, 第一貨物\n * **Netherlands**: DHL Parcel, DPD\n * **Norway**: Bring\n * **Poland**: Inpost\n * **Turkey**: PTT, Yurtiçi Kargo, Aras Kargo, Sürat Kargo\n * **United States**: GLS, Alliance Air Freight, Pilot Freight, LSO, Old Dominion, Pandion, R+L Carriers, Southwest Air Cargo\n * **South Africa**: Fastway, Skynet.")] + [Description("The name of the tracking company.\n\nFor tracking company names from the list below\nShopify will automatically build tracking URLs for all provided tracking numbers,\nwhich will make the tracking numbers clickable in the interface.\n\nAdditionally, for the tracking companies listed on the\n[Shipping Carriers help page](https://help.shopify.com/manual/shipping/understanding-shipping/shipping-carriers#integrated-shipping-carriers)\nShopify will automatically update the fulfillment's `shipment_status` field during the fulfillment process.\n\n### Supported tracking companies\n\nThe following tracking companies display for shops located in any country:\n\n * 4PX\n * AGS\n * Amazon\n * Amazon Logistics UK\n * An Post\n * Anjun Logistics\n * APC\n * Asendia USA\n * Australia Post\n * Bonshaw\n * BPost\n * BPost International\n * Canada Post\n * Canpar\n * CDL Last Mile\n * China Post\n * Chronopost\n * Chukou1\n * Colissimo\n * Comingle\n * Coordinadora\n * Correios\n * Correos\n * CTT\n * CTT Express\n * Cyprus Post\n * Delnext\n * Deutsche Post\n * DHL eCommerce\n * DHL eCommerce Asia\n * DHL Express\n * DPD\n * DPD Local\n * DPD UK\n * DTD Express\n * DX\n * Eagle\n * Estes\n * Evri\n * FedEx\n * First Global Logistics\n * First Line\n * FSC\n * Fulfilla\n * GLS\n * Guangdong Weisuyi Information Technology (WSE)\n * Heppner Internationale Spedition GmbH & Co.\n * Iceland Post\n * IDEX\n * Israel Post\n * Japan Post (EN)\n * Japan Post (JA)\n * La Poste Colissimo\n * La Poste Burkina Faso\n * Lasership\n * Latvia Post\n * Lietuvos Paštas\n * Logisters\n * Lone Star Overnight\n * M3 Logistics\n * Meteor Space\n * Mondial Relay\n * New Zealand Post\n * NinjaVan\n * North Russia Supply Chain (Shenzhen) Co.\n * OnTrac\n * Packeta\n * Pago Logistics\n * Ping An Da Tengfei Express\n * Pitney Bowes\n * Portal PostNord\n * Poste Italiane\n * PostNL\n * PostNord DK\n * PostNord NO\n * PostNord SE\n * Purolator\n * Qxpress\n * Qyun Express\n * Royal Mail\n * Royal Shipments\n * Sagawa (EN)\n * Sagawa (JA)\n * Sendle\n * SF Express\n * SFC Fulfillment\n * ShipBob\n * SHREE NANDAN COURIER\n * Singapore Post\n * Southwest Air Cargo\n * StarTrack\n * Step Forward Freight\n * Swiss Post\n * TForce Final Mile\n * Tinghao\n * TNT\n * Toll IPEC\n * United Delivery Service\n * UPS\n * USPS\n * Venipak\n * We Post\n * Whistl\n * Wizmo\n * WMYC\n * Xpedigo\n * XPO Logistics\n * Yamato (EN)\n * Yamato (JA)\n * YiFan Express\n * YunExpress\n\nThe following tracking companies are displayed for shops located in specific countries:\n\n * **Australia**: Australia Post, Sendle, Aramex Australia, TNT Australia, Hunter Express, Couriers Please, Bonds, Allied Express, Direct Couriers, Northline, GO Logistics\n * **Austria**: Österreichische Post\n * **Bulgaria**: Speedy\n * **Canada**: Intelcom, BoxKnight, Loomis, GLS\n * **China**: China Post, DHL eCommerce Asia, WanbExpress, YunExpress, Anjun Logistics, SFC Fulfillment, FSC\n * **Czechia**: Zásilkovna\n * **Germany**: Deutsche Post (DE), Deutsche Post (EN), DHL, DHL Express, Swiship, Hermes, GLS\n * **Spain**: SEUR\n * **France**: Colissimo, Mondial Relay, Colis Privé, GLS\n * **United Kingdom**: Evri, DPD UK, Parcelforce, Yodel, DHL Parcel, Tuffnells\n * **Greece**: ACS Courier\n * **Hong Kong SAR**: SF Express\n * **Ireland**: Fastway, DPD Ireland\n * **India**: DTDC, India Post, Delhivery, Gati KWE, Professional Couriers, XpressBees, Ecom Express, Ekart, Shadowfax, Bluedart\n * **Italy**: BRT, GLS Italy\n * **Japan**: エコ配, 西濃運輸, 西濃スーパーエキスプレス, 福山通運, 日本通運, 名鉄運輸, 第一貨物\n * **Netherlands**: DHL Parcel, DPD\n * **Norway**: Bring\n * **Poland**: Inpost\n * **Turkey**: PTT, Yurtiçi Kargo, Aras Kargo, Sürat Kargo\n * **United States**: GLS, Alliance Air Freight, Pilot Freight, LSO, Old Dominion, Pandion, R+L Carriers, Southwest Air Cargo\n * **South Africa**: Fastway, Skynet.")] public string? company { get; set; } /// @@ -61937,6 +62164,11 @@ public enum InventoryTransferCreateAsReadyToShipUserErrorCode [Description("The tag exceeds the maximum length.")] TAG_EXCEEDS_MAX_LENGTH, /// + ///One or more tags are not valid. + /// + [Description("One or more tags are not valid.")] + INVALID_TAG, + /// ///A location is required for this operation. /// [Description("A location is required for this operation.")] @@ -61992,6 +62224,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 INVALID_TAG = @"INVALID_TAG"; public const string LOCATION_REQUIRED = @"LOCATION_REQUIRED"; public const string IDEMPOTENCY_CONCURRENT_REQUEST = @"IDEMPOTENCY_CONCURRENT_REQUEST"; public const string IDEMPOTENCY_KEY_PARAMETER_MISMATCH = @"IDEMPOTENCY_KEY_PARAMETER_MISMATCH"; @@ -62132,6 +62365,11 @@ public enum InventoryTransferCreateUserErrorCode [Description("The tag exceeds the maximum length.")] TAG_EXCEEDS_MAX_LENGTH, /// + ///One or more tags are not valid. + /// + [Description("One or more tags are not valid.")] + INVALID_TAG, + /// ///This request is currently in progress, please try again. /// [Description("This request is currently in progress, please try again.")] @@ -62180,6 +62418,7 @@ public static class InventoryTransferCreateUserErrorCodeStringValues public const string LOCATION_NOT_ACTIVE = @"LOCATION_NOT_ACTIVE"; 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 INVALID_TAG = @"INVALID_TAG"; public const string IDEMPOTENCY_CONCURRENT_REQUEST = @"IDEMPOTENCY_CONCURRENT_REQUEST"; public const string IDEMPOTENCY_KEY_PARAMETER_MISMATCH = @"IDEMPOTENCY_KEY_PARAMETER_MISMATCH"; public const string BUNDLED_ITEM = @"BUNDLED_ITEM"; @@ -62497,6 +62736,11 @@ public enum InventoryTransferEditUserErrorCode /// [Description("The tag exceeds the maximum length.")] TAG_EXCEEDS_MAX_LENGTH, + /// + ///One or more tags are not valid. + /// + [Description("One or more tags are not valid.")] + INVALID_TAG, } public static class InventoryTransferEditUserErrorCodeStringValues @@ -62509,6 +62753,7 @@ public static class InventoryTransferEditUserErrorCodeStringValues public const string LOCATION_NOT_FOUND = @"LOCATION_NOT_FOUND"; public const string INVENTORY_STATE_NOT_ACTIVE = @"INVENTORY_STATE_NOT_ACTIVE"; public const string TAG_EXCEEDS_MAX_LENGTH = @"TAG_EXCEEDS_MAX_LENGTH"; + public const string INVALID_TAG = @"INVALID_TAG"; } /// @@ -62782,9 +63027,11 @@ public class InventoryTransferRemoveItemsInput : GraphQLObject - ///The IDs of the transfer line items to be removed from the transfer. + ///The IDs of the [`InventoryTransferLineItem`s](https://shopify.dev/docs/api/admin-graphql/latest/objects/InventoryTransferLineItem) + ///to be removed from the transfer. Passing an empty array is a no-op and returns + ///the transfer unchanged. /// - [Description("The IDs of the transfer line items to be removed from the transfer.")] + [Description("The IDs of the [`InventoryTransferLineItem`s](https://shopify.dev/docs/api/admin-graphql/latest/objects/InventoryTransferLineItem)\nto be removed from the transfer. Passing an empty array is a no-op and returns\nthe transfer unchanged.")] public IEnumerable? transferLineItemIds { get; set; } } @@ -62853,9 +63100,9 @@ public enum InventoryTransferRemoveItemsUserErrorCode [Description("The transfer was not found.")] TRANSFER_NOT_FOUND, /// - ///A ready to ship transfer must have at least one item. + ///A `READY_TO_SHIP` transfer must have at least one line item; you cannot remove every line item from one. To empty a `READY_TO_SHIP` transfer, cancel it instead. /// - [Description("A ready to ship transfer must have at least one item.")] + [Description("A `READY_TO_SHIP` transfer must have at least one line item; you cannot remove every line item from one. To empty a `READY_TO_SHIP` transfer, cancel it instead.")] CANT_REMOVE_ALL_ITEMS_FROM_READY_TO_SHIP_TRANSFER, /// ///The item was not found. @@ -62863,14 +63110,14 @@ public enum InventoryTransferRemoveItemsUserErrorCode [Description("The item was not found.")] ITEM_NOT_FOUND, /// - ///The item cannot have its shippable quantity removed if all of its quantity is fully allocated in one or more shipments. + ///The item cannot be removed because all of its quantity is fully allocated to one or more shipments (including draft shipments where the item has been picked). The error name refers to the underlying allocation check; it triggers regardless of whether the shipments have actually shipped. /// - [Description("The item cannot have its shippable quantity removed if all of its quantity is fully allocated in one or more shipments.")] + [Description("The item cannot be removed because all of its quantity is fully allocated to one or more shipments (including draft shipments where the item has been picked). The error name refers to the underlying allocation check; it triggers regardless of whether the shipments have actually shipped.")] ALL_QUANTITY_SHIPPED, /// - ///The item cannot be removed because it exists in a draft shipment with zero quantity. + ///The line item cannot be removed because it appears on a draft shipment with quantity `0`. /// - [Description("The item cannot be removed because it exists in a draft shipment with zero quantity.")] + [Description("The line item cannot be removed because it appears on a draft shipment with quantity `0`.")] ITEM_PRESENT_ON_DRAFT_SHIPMENT_WITH_ZERO_QUANTITY, /// ///Current transfer status does not support this operation. @@ -62909,9 +63156,9 @@ public class InventoryTransferSetItemsInput : GraphQLObject - ///The line items to be set on the Transfer. + ///The line items to set on the Transfer. Only the items included in this list are affected; items already on the transfer that aren't referenced here will stay unchanged. Each inventory item may appear at most once in this list; duplicate `inventoryItemId` entries are rejected. /// - [Description("The line items to be set on the Transfer.")] + [Description("The line items to set on the Transfer. Only the items included in this list are affected; items already on the transfer that aren't referenced here will stay unchanged. Each inventory item may appear at most once in this list; duplicate `inventoryItemId` entries are rejected.")] [NonNull] public IEnumerable? lineItems { get; set; } } @@ -67205,10 +67452,10 @@ public class MailingAddress : GraphQLObject, INode public string? timeZone { get; set; } /// - ///The validation status that is leveraged by the address validation feature in the Shopify Admin. + ///The validation status that's leveraged by the address validation feature in the Shopify Admin. ///See ["Validating addresses in your Shopify admin"](https://help.shopify.com/manual/fulfillment/managing-orders/validating-order-address) for more details. /// - [Description("The validation status that is leveraged by the address validation feature in the Shopify Admin.\nSee [\"Validating addresses in your Shopify admin\"](https://help.shopify.com/manual/fulfillment/managing-orders/validating-order-address) for more details.")] + [Description("The validation status that's leveraged by the address validation feature in the Shopify Admin.\nSee [\"Validating addresses in your Shopify admin\"](https://help.shopify.com/manual/fulfillment/managing-orders/validating-order-address) for more details.")] [EnumType(typeof(MailingAddressValidationResult))] public string? validationResultSummary { get; set; } @@ -67490,14 +67737,16 @@ public class ManualDiscountApplication : GraphQLObject - ///A market is a group of one or more regions that you want to target for international sales. - ///By creating a market, you can configure a distinct, localized shopping experience for - ///customers from a specific area of the world. For example, you can - ///[change currency](https://shopify.dev/api/admin-graphql/current/mutations/marketCurrencySettingsUpdate), - ///[configure international pricing](https://shopify.dev/apps/internationalization/product-price-lists), - ///or [add market-specific domains or subfolders](https://shopify.dev/api/admin-graphql/current/objects/MarketWebPresence). + ///A merchant-defined group of buyers identified by conditions such as their + ///region, retail location, or company location. Each market allows configuration + ///of a distinct, localized buyer experience. Customizations include, but are + ///not limited to, + ///[currency](https://shopify.dev/api/admin-graphql/current/mutations/marketCurrencySettingsUpdate), + ///[pricing and product availability](https://shopify.dev/apps/internationalization/product-price-lists), + ///[web presence](https://shopify.dev/api/admin-graphql/current/objects/MarketWebPresence), + ///and content translations. /// - [Description("A market is a group of one or more regions that you want to target for international sales.\nBy creating a market, you can configure a distinct, localized shopping experience for\ncustomers from a specific area of the world. For example, you can\n[change currency](https://shopify.dev/api/admin-graphql/current/mutations/marketCurrencySettingsUpdate),\n[configure international pricing](https://shopify.dev/apps/internationalization/product-price-lists),\nor [add market-specific domains or subfolders](https://shopify.dev/api/admin-graphql/current/objects/MarketWebPresence).")] + [Description("A merchant-defined group of buyers identified by conditions such as their\nregion, retail location, or company location. Each market allows configuration\nof a distinct, localized buyer experience. Customizations include, but are\nnot limited to,\n[currency](https://shopify.dev/api/admin-graphql/current/mutations/marketCurrencySettingsUpdate),\n[pricing and product availability](https://shopify.dev/apps/internationalization/product-price-lists),\n[web presence](https://shopify.dev/api/admin-graphql/current/objects/MarketWebPresence),\nand content translations.")] public class Market : GraphQLObject, IHasMetafieldDefinitions, IHasMetafields, INode, IMetafieldReferencer { /// @@ -69259,6 +69508,11 @@ public enum MarketUserErrorCode [Description("An error occurred. See the message for details.")] GENERIC_ERROR, /// + ///Another modification to this market is in progress. + /// + [Description("Another modification to this market is in progress.")] + MARKET_UPDATE_CONCURRENT_MODIFICATION, + /// ///Invalid combination of status and enabled. /// [Description("Invalid combination of status and enabled.")] @@ -69401,6 +69655,11 @@ public enum MarketUserErrorCode [Description("Catalogs created by Managed Markets cannot be added to a market.")] MANAGED_MARKETS_CATALOG_NOT_ALLOWED, /// + ///Resources created by Managed Markets cannot be added to a market. + /// + [Description("Resources created by Managed Markets cannot be added to a market.")] + MANAGED_MARKETS_RESOURCE_NOT_ALLOWED, + /// ///Retail location currency must be local. /// [Description("Retail location currency must be local.")] @@ -69436,6 +69695,11 @@ public enum MarketUserErrorCode [Description("Can't add selected responders to a province driven market.")] [Obsolete("No longer used")] INVALID_RESPONDER_FOR_PROVINCE_DRIVEN_MARKET, + /// + ///Global-e pricing configurations can only be edited by Global-e. + /// + [Description("Global-e pricing configurations can only be edited by Global-e.")] + GLOBAL_E_PRICING_STRATEGY_NOT_PERMITTED, } public static class MarketUserErrorCodeStringValues @@ -69495,6 +69759,7 @@ public static class MarketUserErrorCodeStringValues public const string UNSUPPORTED_COUNTRY_REGION = @"UNSUPPORTED_COUNTRY_REGION"; public const string CANNOT_ADD_CUSTOMER_DOMAIN = @"CANNOT_ADD_CUSTOMER_DOMAIN"; public const string GENERIC_ERROR = @"GENERIC_ERROR"; + public const string MARKET_UPDATE_CONCURRENT_MODIFICATION = @"MARKET_UPDATE_CONCURRENT_MODIFICATION"; public const string INVALID_STATUS_AND_ENABLED_COMBINATION = @"INVALID_STATUS_AND_ENABLED_COMBINATION"; public const string INVALID_PROVINCE_FORMAT = @"INVALID_PROVINCE_FORMAT"; public const string CONDITIONS_NOT_FOUND = @"CONDITIONS_NOT_FOUND"; @@ -69525,6 +69790,7 @@ public static class MarketUserErrorCodeStringValues public const string B2B_MARKET_MUST_BE_MERCHANT_MANAGED = @"B2B_MARKET_MUST_BE_MERCHANT_MANAGED"; public const string POS_LOCATION_MARKET_MUST_BE_MERCHANT_MANAGED = @"POS_LOCATION_MARKET_MUST_BE_MERCHANT_MANAGED"; public const string MANAGED_MARKETS_CATALOG_NOT_ALLOWED = @"MANAGED_MARKETS_CATALOG_NOT_ALLOWED"; + public const string MANAGED_MARKETS_RESOURCE_NOT_ALLOWED = @"MANAGED_MARKETS_RESOURCE_NOT_ALLOWED"; public const string RETAIL_LOCATION_CURRENCY_MUST_BE_LOCAL = @"RETAIL_LOCATION_CURRENCY_MUST_BE_LOCAL"; public const string CATALOGS_WITH_VOLUME_PRICING_OR_QUANTITY_RULES_NOT_SUPPORTED = @"CATALOGS_WITH_VOLUME_PRICING_OR_QUANTITY_RULES_NOT_SUPPORTED"; public const string MIXED_COUNTRY_LOCATIONS_NOT_ALLOWED = @"MIXED_COUNTRY_LOCATIONS_NOT_ALLOWED"; @@ -69533,6 +69799,7 @@ public static class MarketUserErrorCodeStringValues 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"; + public const string GLOBAL_E_PRICING_STRATEGY_NOT_PERMITTED = @"GLOBAL_E_PRICING_STRATEGY_NOT_PERMITTED"; } /// @@ -71448,9 +71715,10 @@ public class MarketingEngagement : GraphQLObject public int? impressionsCount { get; set; } /// - ///Specifies how the provided metrics have been aggregated. Cumulative metrics are aggregated from the first day of reporting up to and including `occuredOn`. Non-cumulative metrics are aggregated over the single day indicated in `occuredOn`. Cumulative metrics will monotonically increase in time as each record includes the previous day's values, and so on. Non-cumulative is strongly preferred, and support for cumulative metrics may be deprecated in the future. + ///Specifies how the provided metrics have been aggregated. Cumulative metrics are aggregated from the first day of reporting up to and including `occuredOn`. Non-cumulative metrics are aggregated over the single day indicated in `occuredOn`. Cumulative metrics will monotonically increase in time as each record includes the previous day's values, and so on. Non-cumulative metrics are required going forward; cumulative metrics are deprecated. /// - [Description("Specifies how the provided metrics have been aggregated. Cumulative metrics are aggregated from the first day of reporting up to and including `occuredOn`. Non-cumulative metrics are aggregated over the single day indicated in `occuredOn`. Cumulative metrics will monotonically increase in time as each record includes the previous day's values, and so on. Non-cumulative is strongly preferred, and support for cumulative metrics may be deprecated in the future.")] + [Description("Specifies how the provided metrics have been aggregated. Cumulative metrics are aggregated from the first day of reporting up to and including `occuredOn`. Non-cumulative metrics are aggregated over the single day indicated in `occuredOn`. Cumulative metrics will monotonically increase in time as each record includes the previous day's values, and so on. Non-cumulative metrics are required going forward; cumulative metrics are deprecated.")] + [Obsolete("Cumulative metrics are being phased out. Send non-cumulative engagement metrics instead (values aggregated over the single day indicated in `occurredOn`, with `isCumulative: false`). Existing activities that have been sending cumulative metrics can migrate to non-cumulative at any time.")] [NonNull] public bool? isCumulative { get; set; } @@ -71653,9 +71921,9 @@ public class MarketingEngagementInput : GraphQLObject public MoneyInput? adSpend { get; set; } /// - ///Specifies how the provided metrics have been aggregated. Cumulative metrics are aggregated from the first day of reporting up to and including `occuredOn`. Non-cumulative metrics are aggregated over the single day indicated in `occuredOn`. Cumulative metrics will monotonically increase in time as each record includes the previous day's values, and so on. Non-cumulative is strongly preferred, and support for cumulative metrics may be deprecated in the future. + ///Specifies how the provided metrics have been aggregated. Cumulative metrics are aggregated from the first day of reporting up to and including `occuredOn`. Non-cumulative metrics are aggregated over the single day indicated in `occuredOn`. Cumulative metrics will monotonically increase in time as each record includes the previous day's values, and so on. Non-cumulative metrics are required going forward; cumulative metrics are deprecated. /// - [Description("Specifies how the provided metrics have been aggregated. Cumulative metrics are aggregated from the first day of reporting up to and including `occuredOn`. Non-cumulative metrics are aggregated over the single day indicated in `occuredOn`. Cumulative metrics will monotonically increase in time as each record includes the previous day's values, and so on. Non-cumulative is strongly preferred, and support for cumulative metrics may be deprecated in the future.")] + [Description("Specifies how the provided metrics have been aggregated. Cumulative metrics are aggregated from the first day of reporting up to and including `occuredOn`. Non-cumulative metrics are aggregated over the single day indicated in `occuredOn`. Cumulative metrics will monotonically increase in time as each record includes the previous day's values, and so on. Non-cumulative metrics are required going forward; cumulative metrics are deprecated.")] [NonNull] public bool? isCumulative { get; set; } @@ -75724,9 +75992,9 @@ public class MetafieldDefinitionUpdateInput : GraphQLObject ///The container for a group of metafields that the metafield definition is associated with. Used to help identify - ///the metafield definition, but cannot be updated itself. If omitted, the app-reserved namespace will be used. + ///the metafield definition, but can't be updated itself. If omitted, the app-reserved namespace will be used. /// - [Description("The container for a group of metafields that the metafield definition is associated with. Used to help identify\nthe metafield definition, but cannot be updated itself. If omitted, the app-reserved namespace will be used.")] + [Description("The container for a group of metafields that the metafield definition is associated with. Used to help identify\nthe metafield definition, but can't be updated itself. If omitted, the app-reserved namespace will be used.")] public string? @namespace { get; set; } /// @@ -76230,12 +76498,12 @@ public class MetafieldInput : GraphQLObject public string? value { get; set; } /// - ///The type of data that is stored in the metafield. + ///The type of data that's stored in the metafield. ///Refer to the list of [supported types](https://shopify.dev/apps/metafields/types). /// ///Required when creating or updating a metafield without a definition. /// - [Description("The type of data that is stored in the metafield.\nRefer to the list of [supported types](https://shopify.dev/apps/metafields/types).\n\nRequired when creating or updating a metafield without a definition.")] + [Description("The type of data that's stored in the metafield.\nRefer to the list of [supported types](https://shopify.dev/apps/metafields/types).\n\nRequired when creating or updating a metafield without a definition.")] public string? type { get; set; } } @@ -76828,13 +77096,13 @@ public class MetafieldsSetInput : GraphQLObject public string? compareDigest { get; set; } /// - ///The type of data that is stored in the metafield. + ///The type of data that's stored in the metafield. ///The type must be one of the [supported types](https://shopify.dev/apps/metafields/types). /// - ///Required when there is no corresponding definition for the given `namespace`, `key`, and + ///Required when there's no corresponding definition for the given `namespace`, `key`, and ///owner resource type (derived from `ownerId`). /// - [Description("The type of data that is stored in the metafield.\nThe type must be one of the [supported types](https://shopify.dev/apps/metafields/types).\n\nRequired when there is no corresponding definition for the given `namespace`, `key`, and\nowner resource type (derived from `ownerId`).")] + [Description("The type of data that's stored in the metafield.\nThe type must be one of the [supported types](https://shopify.dev/apps/metafields/types).\n\nRequired when there's no corresponding definition for the given `namespace`, `key`, and\nowner resource type (derived from `ownerId`).")] public string? type { get; set; } } @@ -79859,23 +80127,23 @@ public class Mutation : GraphQLObject, IMutationRoot /// ///Creates and runs a [bulk operation](https://shopify.dev/docs/api/admin-graphql/latest/objects/BulkOperation) to import data asynchronously. This mutation executes a specified GraphQL mutation multiple times using input data from a [JSONL](http://jsonlines.org/) file that you've uploaded to Shopify. /// - ///The operation processes each line in your JSONL file as a separate mutation execution. The operation delivers results in a JSONL file when it completes. You can run one bulk mutation operation at a time per shop, though a [`bulkOperationRunQuery`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/bulkoperationrunquery) operation can run simultaneously. + ///The operation processes each line in your JSONL file as a separate mutation execution. The operation delivers results in a JSONL file when it completes. Bulk mutation operations and [`bulkOperationRunQuery`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/bulkoperationrunquery) operations can run at the same time per shop. The number of concurrent operations that an app can run depends on the API version. For the applicable concurrency limits, refer to the [bulk operations guide](https://shopify.dev/docs/api/usage/bulk-operations/imports). /// ///Learn more about [bulk importing data](https://shopify.dev/docs/api/usage/bulk-operations/imports). /// - [Description("Creates and runs a [bulk operation](https://shopify.dev/docs/api/admin-graphql/latest/objects/BulkOperation) to import data asynchronously. This mutation executes a specified GraphQL mutation multiple times using input data from a [JSONL](http://jsonlines.org/) file that you've uploaded to Shopify.\n\nThe operation processes each line in your JSONL file as a separate mutation execution. The operation delivers results in a JSONL file when it completes. You can run one bulk mutation operation at a time per shop, though a [`bulkOperationRunQuery`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/bulkoperationrunquery) operation can run simultaneously.\n\nLearn more about [bulk importing data](https://shopify.dev/docs/api/usage/bulk-operations/imports).")] + [Description("Creates and runs a [bulk operation](https://shopify.dev/docs/api/admin-graphql/latest/objects/BulkOperation) to import data asynchronously. This mutation executes a specified GraphQL mutation multiple times using input data from a [JSONL](http://jsonlines.org/) file that you've uploaded to Shopify.\n\nThe operation processes each line in your JSONL file as a separate mutation execution. The operation delivers results in a JSONL file when it completes. Bulk mutation operations and [`bulkOperationRunQuery`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/bulkoperationrunquery) operations can run at the same time per shop. The number of concurrent operations that an app can run depends on the API version. For the applicable concurrency limits, refer to the [bulk operations guide](https://shopify.dev/docs/api/usage/bulk-operations/imports).\n\nLearn more about [bulk importing data](https://shopify.dev/docs/api/usage/bulk-operations/imports).")] public BulkOperationRunMutationPayload? bulkOperationRunMutation { get; set; } /// ///Creates and runs a [bulk operation](https://shopify.dev/docs/api/admin-graphql/latest/objects/BulkOperation) to fetch data asynchronously. The operation processes your GraphQL query in the background and returns results in a [JSONL](http://jsonlines.org/) file when complete. /// - ///Apps can run one bulk query operation and one bulk mutation operation at a time per shop. The query must include at least one connection field and supports up to five connections with a maximum nesting depth of two levels. + ///Bulk query and bulk mutation operations can run at the same time per shop. The number of concurrent operations that an app can run depends on the API version. For the applicable concurrency limits, refer to the [bulk operations guide](https://shopify.dev/docs/api/usage/bulk-operations/queries). The query must include at least one connection field and supports up to five connections with a maximum nesting depth of two levels. /// ///> Note: Results remain available for seven days after completion. /// ///For more information, see the [bulk operations guide](https://shopify.dev/docs/api/usage/bulk-operations/queries). /// - [Description("Creates and runs a [bulk operation](https://shopify.dev/docs/api/admin-graphql/latest/objects/BulkOperation) to fetch data asynchronously. The operation processes your GraphQL query in the background and returns results in a [JSONL](http://jsonlines.org/) file when complete.\n\nApps can run one bulk query operation and one bulk mutation operation at a time per shop. The query must include at least one connection field and supports up to five connections with a maximum nesting depth of two levels.\n\n> Note: Results remain available for seven days after completion.\n\nFor more information, see the [bulk operations guide](https://shopify.dev/docs/api/usage/bulk-operations/queries).")] + [Description("Creates and runs a [bulk operation](https://shopify.dev/docs/api/admin-graphql/latest/objects/BulkOperation) to fetch data asynchronously. The operation processes your GraphQL query in the background and returns results in a [JSONL](http://jsonlines.org/) file when complete.\n\nBulk query and bulk mutation operations can run at the same time per shop. The number of concurrent operations that an app can run depends on the API version. For the applicable concurrency limits, refer to the [bulk operations guide](https://shopify.dev/docs/api/usage/bulk-operations/queries). The query must include at least one connection field and supports up to five connections with a maximum nesting depth of two levels.\n\n> Note: Results remain available for seven days after completion.\n\nFor more information, see the [bulk operations guide](https://shopify.dev/docs/api/usage/bulk-operations/queries).")] public BulkOperationRunQueryPayload? bulkOperationRunQuery { get; set; } /// @@ -80089,11 +80357,10 @@ public class Mutation : GraphQLObject, IMutationRoot /// ///The mutation processes multiple product additions and returns success status along with any errors encountered during the operation. Products are added to the collection while preserving existing collection settings. /// - ///This operation only works with manual collections where merchants explicitly choose which products to include. It will return an error if used with smart collections that automatically include products based on conditions. - /// ///Learn more about [collection management](https://shopify.dev/docs/api/admin-graphql/latest/objects/Collection). /// - [Description("Adds multiple products to an existing collection in a single operation. This mutation provides an efficient way to bulk-manage collection membership without individual product updates.\n\nFor example, when merchants create seasonal collections, they can add dozens of related products at once rather than updating each product individually. A clothing store might add all winter jackets to a \"Winter Collection\" in one operation.\n\nUse `CollectionAddProducts` to:\n- Bulk-add products to collections for efficient catalog management\n- Implement collection building tools in admin interfaces\n- Organize collection membership during bulk product operations\n- Reduce API calls when managing large product sets\n\nThe mutation processes multiple product additions and returns success status along with any errors encountered during the operation. Products are added to the collection while preserving existing collection settings.\n\nThis operation only works with manual collections where merchants explicitly choose which products to include. It will return an error if used with smart collections that automatically include products based on conditions.\n\nLearn more about [collection management](https://shopify.dev/docs/api/admin-graphql/latest/objects/Collection).")] + [Description("Adds multiple products to an existing collection in a single operation. This mutation provides an efficient way to bulk-manage collection membership without individual product updates.\n\nFor example, when merchants create seasonal collections, they can add dozens of related products at once rather than updating each product individually. A clothing store might add all winter jackets to a \"Winter Collection\" in one operation.\n\nUse `CollectionAddProducts` to:\n- Bulk-add products to collections for efficient catalog management\n- Implement collection building tools in admin interfaces\n- Organize collection membership during bulk product operations\n- Reduce API calls when managing large product sets\n\nThe mutation processes multiple product additions and returns success status along with any errors encountered during the operation. Products are added to the collection while preserving existing collection settings.\n\nLearn more about [collection management](https://shopify.dev/docs/api/admin-graphql/latest/objects/Collection).")] + [Obsolete("Use `collectionUpdate` with inclusion.selectionsToAdd instead.")] public CollectionAddProductsPayload? collectionAddProducts { get; set; } /// @@ -80105,6 +80372,7 @@ public class Mutation : GraphQLObject, IMutationRoot ///> This mutation adds products in the order specified in the [`productIds`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/collectionAddProducts#arguments-productIds) argument. /// [Description("Adds products to a [`Collection`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Collection) asynchronously and returns a [`Job`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Job) to track the operation's progress. This mutation handles large product sets efficiently by processing them in the background.\n\nYou can poll the returned job using the [`job`](https://shopify.dev/docs/api/admin-graphql/latest/queries/job) query to monitor completion status.\n\n> Note:\n> This mutation adds products in the order specified in the [`productIds`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/collectionAddProducts#arguments-productIds) argument.")] + [Obsolete("Use `collectionUpdate` with inclusion.selectionsToAdd instead.")] public CollectionAddProductsV2Payload? collectionAddProductsV2 { get; set; } /// @@ -80114,26 +80382,37 @@ public class Mutation : GraphQLObject, IMutationRoot ///other [sales channels](https://shopify.dev/docs/apps/build/sales-channels). ///For example, an athletics store might create different collections for running attire, shoes, and accessories. /// - ///There are two types of collections: - /// - ///- **[Custom (manual) collections](https://help.shopify.com/manual/products/collections/manual-shopify-collection)**: You specify the products to include in a collection. - ///- **[Smart (automated) collections](https://help.shopify.com/manual/products/collections/automated-collections)**: You define rules, and products matching those rules are automatically - ///included in the collection. - /// ///Use the `collectionCreate` mutation when you need to: /// ///- Create a new collection for a product launch or campaign ///- Organize products by category, season, or promotion - ///- Automate product grouping using rules (for example, by tag, type, or price) + ///- Automate product grouping using conditions (for example, by tag, type, or price) + /// + ///Collections can include products manually and can also include products automatically based on rules, sources, + ///or conditions. + /// + ///**Defining a collection's membership** + /// + ///Define membership with `sources` on the `collection` argument + ///([`CollectionCreateInput`](https://shopify.dev/docs/api/admin-graphql/latest/input-objects/CollectionCreateInput)). + ///Each source adds products through `conditions` (such as product tag, title, or metafield—see + ///[`CollectionSourceInclusionConditionInput`](https://shopify.dev/docs/api/admin-graphql/latest/input-objects/CollectionSourceInclusionConditionInput) + ///for the full list) and through manual `selections`. + /// + ///> Note: + ///> The `input` argument and its `ruleSet` field are deprecated. Existing integrations should migrate to + ///`collection` and `sources` — a `ruleSet` rule maps to an equivalent source `condition` (for example, a + ///tag rule becomes a `productTag` condition). If both `collection` and `input` are provided, `collection` + ///is used. /// ///> Note: ///> The created collection is unpublished by default. To make it available to customers, ///use the [`publishablePublish`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/publishablePublish) ///mutation after creation. /// - ///Learn more about [using metafields with smart collections](https://shopify.dev/docs/apps/build/custom-data/metafields/use-metafield-capabilities). + ///Learn more about [using metafields with collection conditions](https://shopify.dev/docs/apps/build/custom-data/metafields/use-metafield-capabilities). /// - [Description("Creates a [collection](https://shopify.dev/docs/api/admin-graphql/latest/objects/Collection)\nto group [products](https://shopify.dev/docs/api/admin-graphql/latest/objects/Product) together\nin the [online store](https://shopify.dev/docs/apps/build/online-store) and\nother [sales channels](https://shopify.dev/docs/apps/build/sales-channels).\nFor example, an athletics store might create different collections for running attire, shoes, and accessories.\n\nThere are two types of collections:\n\n- **[Custom (manual) collections](https://help.shopify.com/manual/products/collections/manual-shopify-collection)**: You specify the products to include in a collection.\n- **[Smart (automated) collections](https://help.shopify.com/manual/products/collections/automated-collections)**: You define rules, and products matching those rules are automatically\nincluded in the collection.\n\nUse the `collectionCreate` mutation when you need to:\n\n- Create a new collection for a product launch or campaign\n- Organize products by category, season, or promotion\n- Automate product grouping using rules (for example, by tag, type, or price)\n\n> Note:\n> The created collection is unpublished by default. To make it available to customers,\nuse the [`publishablePublish`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/publishablePublish)\nmutation after creation.\n\nLearn more about [using metafields with smart collections](https://shopify.dev/docs/apps/build/custom-data/metafields/use-metafield-capabilities).")] + [Description("Creates a [collection](https://shopify.dev/docs/api/admin-graphql/latest/objects/Collection)\nto group [products](https://shopify.dev/docs/api/admin-graphql/latest/objects/Product) together\nin the [online store](https://shopify.dev/docs/apps/build/online-store) and\nother [sales channels](https://shopify.dev/docs/apps/build/sales-channels).\nFor example, an athletics store might create different collections for running attire, shoes, and accessories.\n\nUse the `collectionCreate` mutation when you need to:\n\n- Create a new collection for a product launch or campaign\n- Organize products by category, season, or promotion\n- Automate product grouping using conditions (for example, by tag, type, or price)\n\nCollections can include products manually and can also include products automatically based on rules, sources,\nor conditions.\n\n**Defining a collection's membership**\n\nDefine membership with `sources` on the `collection` argument\n([`CollectionCreateInput`](https://shopify.dev/docs/api/admin-graphql/latest/input-objects/CollectionCreateInput)).\nEach source adds products through `conditions` (such as product tag, title, or metafield—see\n[`CollectionSourceInclusionConditionInput`](https://shopify.dev/docs/api/admin-graphql/latest/input-objects/CollectionSourceInclusionConditionInput)\nfor the full list) and through manual `selections`.\n\n> Note:\n> The `input` argument and its `ruleSet` field are deprecated. Existing integrations should migrate to\n`collection` and `sources` — a `ruleSet` rule maps to an equivalent source `condition` (for example, a\ntag rule becomes a `productTag` condition). If both `collection` and `input` are provided, `collection`\nis used.\n\n> Note:\n> The created collection is unpublished by default. To make it available to customers,\nuse the [`publishablePublish`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/publishablePublish)\nmutation after creation.\n\nLearn more about [using metafields with collection conditions](https://shopify.dev/docs/apps/build/custom-data/metafields/use-metafield-capabilities).")] public CollectionCreatePayload? collectionCreate { get; set; } /// @@ -80176,7 +80455,7 @@ public class Mutation : GraphQLObject, IMutationRoot public CollectionPublishPayload? collectionPublish { get; set; } /// - ///Removes multiple products from a collection in a single operation. This mutation can process large product sets (up to 250 products) and may take significant time to complete for collections with many products. + ///Removes multiple manually included products from a collection in a single operation. This mutation can process large product sets (up to 250 products) and may take significant time to complete for collections with many products. /// ///For example, when ending a seasonal promotion, merchants can remove all sale items from a "Summer Clearance" collection at once rather than editing each product individually. /// @@ -80189,7 +80468,8 @@ public class Mutation : GraphQLObject, IMutationRoot /// ///Learn more about [collection management](https://shopify.dev/docs/api/admin-graphql/latest/objects/Collection). /// - [Description("Removes multiple products from a collection in a single operation. This mutation can process large product sets (up to 250 products) and may take significant time to complete for collections with many products.\n\nFor example, when ending a seasonal promotion, merchants can remove all sale items from a \"Summer Clearance\" collection at once rather than editing each product individually.\n\nUse `CollectionRemoveProducts` to:\n- Bulk-remove products from collections efficiently\n- Clean up collection membership during catalog updates\n- Implement automated collection management workflows\n\nThe operation processes asynchronously to avoid timeouts and performance issues, especially for large product sets.\n\nLearn more about [collection management](https://shopify.dev/docs/api/admin-graphql/latest/objects/Collection).")] + [Description("Removes multiple manually included products from a collection in a single operation. This mutation can process large product sets (up to 250 products) and may take significant time to complete for collections with many products.\n\nFor example, when ending a seasonal promotion, merchants can remove all sale items from a \"Summer Clearance\" collection at once rather than editing each product individually.\n\nUse `CollectionRemoveProducts` to:\n- Bulk-remove products from collections efficiently\n- Clean up collection membership during catalog updates\n- Implement automated collection management workflows\n\nThe operation processes asynchronously to avoid timeouts and performance issues, especially for large product sets.\n\nLearn more about [collection management](https://shopify.dev/docs/api/admin-graphql/latest/objects/Collection).")] + [Obsolete("Use `collectionUpdate` with inclusions.selectionsToRemove instead.")] public CollectionRemoveProductsPayload? collectionRemoveProducts { get; set; } /// @@ -80232,23 +80512,21 @@ public class Mutation : GraphQLObject, IMutationRoot /// ///- Updating collection details, like title, description, or image ///- Modifying SEO metadata for better search visibility - ///- Changing which products are included (using rule updates for smart collections) - ///- Publishing or unpublishing collections across different sales channels + ///- Changing which products are included in a collection by updating its rules, sources, or conditions ///- Updating custom data using [metafields](https://shopify.dev/docs/apps/build/custom-data/metafields) /// - ///There are two types of collections with different update capabilities: - /// - ///- **[Custom (manual) collections](https://help.shopify.com/manual/products/collections/manual-shopify-collection)**: You can update collection properties, but rule sets can't be modified since products are manually selected. - ///- **[Smart (automated) collections](https://help.shopify.com/manual/products/collections/automated-collections)**: You can update both collection properties and the rules that automatically determine which products are included. - ///When updating [rule sets](https://shopify.dev/docs/api/admin-graphql/latest/objects/CollectionRuleConditions) for smart collections, the operation might be processed asynchronously. In these cases, the mutation returns a [`job`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Job) object that you can use to track the progress of the update. + ///Collections can include products manually and can also include products automatically based on rules, sources, + ///or conditions. When product membership is updated through rules, sources, or conditions, the operation might + ///be processed asynchronously. In these cases, the mutation returns a [`job`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Job) object + ///that you can use to track the progress of the update. /// ///To publish or unpublish collections to specific sales channels, use the dedicated ///[`publishablePublish`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/publishablePublish) and ///[`publishableUnpublish`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/publishableUnpublish) mutations. /// - ///Learn more about [using metafields with smart collections](https://shopify.dev/docs/apps/build/custom-data/metafields/use-metafield-capabilities). + ///Learn more about [using metafields with collection conditions](https://shopify.dev/docs/apps/build/custom-data/metafields/use-metafield-capabilities). /// - [Description("Updates a [collection](https://shopify.dev/docs/api/admin-graphql/latest/objects/Collection),\nmodifying its properties, products, or publication settings. Collections help organize\n[products](https://shopify.dev/docs/api/admin-graphql/latest/objects/Product) together\nin the [online store](https://shopify.dev/docs/apps/build/online-store) and\nother [sales channels](https://shopify.dev/docs/apps/build/sales-channels).\n\nUse the `collectionUpdate` mutation to programmatically modify collections in scenarios such as:\n\n- Updating collection details, like title, description, or image\n- Modifying SEO metadata for better search visibility\n- Changing which products are included (using rule updates for smart collections)\n- Publishing or unpublishing collections across different sales channels\n- Updating custom data using [metafields](https://shopify.dev/docs/apps/build/custom-data/metafields)\n\nThere are two types of collections with different update capabilities:\n\n- **[Custom (manual) collections](https://help.shopify.com/manual/products/collections/manual-shopify-collection)**: You can update collection properties, but rule sets can't be modified since products are manually selected.\n- **[Smart (automated) collections](https://help.shopify.com/manual/products/collections/automated-collections)**: You can update both collection properties and the rules that automatically determine which products are included.\nWhen updating [rule sets](https://shopify.dev/docs/api/admin-graphql/latest/objects/CollectionRuleConditions) for smart collections, the operation might be processed asynchronously. In these cases, the mutation returns a [`job`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Job) object that you can use to track the progress of the update.\n\nTo publish or unpublish collections to specific sales channels, use the dedicated\n[`publishablePublish`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/publishablePublish) and\n[`publishableUnpublish`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/publishableUnpublish) mutations.\n\nLearn more about [using metafields with smart collections](https://shopify.dev/docs/apps/build/custom-data/metafields/use-metafield-capabilities).")] + [Description("Updates a [collection](https://shopify.dev/docs/api/admin-graphql/latest/objects/Collection),\nmodifying its properties, products, or publication settings. Collections help organize\n[products](https://shopify.dev/docs/api/admin-graphql/latest/objects/Product) together\nin the [online store](https://shopify.dev/docs/apps/build/online-store) and\nother [sales channels](https://shopify.dev/docs/apps/build/sales-channels).\n\nUse the `collectionUpdate` mutation to programmatically modify collections in scenarios such as:\n\n- Updating collection details, like title, description, or image\n- Modifying SEO metadata for better search visibility\n- Changing which products are included in a collection by updating its rules, sources, or conditions\n- Updating custom data using [metafields](https://shopify.dev/docs/apps/build/custom-data/metafields)\n\nCollections can include products manually and can also include products automatically based on rules, sources,\nor conditions. When product membership is updated through rules, sources, or conditions, the operation might\nbe processed asynchronously. In these cases, the mutation returns a [`job`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Job) object\nthat you can use to track the progress of the update.\n\nTo publish or unpublish collections to specific sales channels, use the dedicated\n[`publishablePublish`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/publishablePublish) and\n[`publishableUnpublish`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/publishableUnpublish) mutations.\n\nLearn more about [using metafields with collection conditions](https://shopify.dev/docs/apps/build/custom-data/metafields/use-metafield-capabilities).")] public CollectionUpdatePayload? collectionUpdate { get; set; } /// @@ -80622,8 +80900,20 @@ public class Mutation : GraphQLObject, IMutationRoot /// ///Merges two customers. + /// + ///The `customerOneId` and `customerTwoId` arguments don't guarantee which customer is kept. Shopify + ///selects the resulting customer in this order: + ///1. If `overrideFields.customerIdOfEmailToKeep` is provided and valid, then the selected customer is kept. + ///2. If exactly one customer has an email address, then that customer is kept. + ///3. If both customers have email addresses, then account state and email marketing consent determine + /// the customer that's kept: an `enabled` account wins over other account states; otherwise, an + /// `invited` account can win when consent doesn't already prefer `subscribed` or `pending`; otherwise + /// the consent result is used. If those rules don't prefer either customer, then `customerTwoId` is kept. + ///4. If neither customer has an email address, then `customerTwoId` is kept. + /// + ///Use `customerMergePreview` and `resultingCustomerId` to check which customer will be kept before merging. /// - [Description("Merges two customers.")] + [Description("Merges two customers.\n\nThe `customerOneId` and `customerTwoId` arguments don't guarantee which customer is kept. Shopify\nselects the resulting customer in this order:\n1. If `overrideFields.customerIdOfEmailToKeep` is provided and valid, then the selected customer is kept.\n2. If exactly one customer has an email address, then that customer is kept.\n3. If both customers have email addresses, then account state and email marketing consent determine\n the customer that's kept: an `enabled` account wins over other account states; otherwise, an\n `invited` account can win when consent doesn't already prefer `subscribed` or `pending`; otherwise\n the consent result is used. If those rules don't prefer either customer, then `customerTwoId` is kept.\n4. If neither customer has an email address, then `customerTwoId` is kept.\n\nUse `customerMergePreview` and `resultingCustomerId` to check which customer will be kept before merging.")] public CustomerMergePayload? customerMerge { get; set; } /// @@ -80645,9 +80935,9 @@ public class Mutation : GraphQLObject, IMutationRoot public CustomerPaymentMethodCreditCardCreatePayload? customerPaymentMethodCreditCardCreate { get; set; } /// - ///Updates the credit card payment method for a customer. + ///Updates an existing vaulted credit card payment method for a customer, including billing address and card details. Requires a valid cardserver session from a PCI-compliant environment. Use this when a customer's card details have changed (e.g., new expiration date or replacement card) and ongoing subscriptions or saved payment methods need to be updated. /// - [Description("Updates the credit card payment method for a customer.")] + [Description("Updates an existing vaulted credit card payment method for a customer, including billing address and card details. Requires a valid cardserver session from a PCI-compliant environment. Use this when a customer's card details have changed (e.g., new expiration date or replacement card) and ongoing subscriptions or saved payment methods need to be updated.")] public CustomerPaymentMethodCreditCardUpdatePayload? customerPaymentMethodCreditCardUpdate { get; set; } /// @@ -80667,15 +80957,15 @@ public class Mutation : GraphQLObject, IMutationRoot public CustomerPaymentMethodGetUpdateUrlPayload? customerPaymentMethodGetUpdateUrl { get; set; } /// - ///Creates a PayPal billing agreement for a customer. + ///Creates a vaulted PayPal billing agreement for a customer, enabling recurring charges through PayPal. The billing agreement ID (starting with 'B-') must be obtained from PayPal. Once created, this payment method can be used for subscription billing or future order payments without requiring the customer to re-authenticate with PayPal. /// - [Description("Creates a PayPal billing agreement for a customer.")] + [Description("Creates a vaulted PayPal billing agreement for a customer, enabling recurring charges through PayPal. The billing agreement ID (starting with 'B-') must be obtained from PayPal. Once created, this payment method can be used for subscription billing or future order payments without requiring the customer to re-authenticate with PayPal.")] public CustomerPaymentMethodPaypalBillingAgreementCreatePayload? customerPaymentMethodPaypalBillingAgreementCreate { get; set; } /// - ///Updates a PayPal billing agreement for a customer. + ///Updates the billing address associated with a customer's vaulted PayPal billing agreement. Use this when a customer's billing information has changed and their PayPal payment method record in Shopify needs to be updated accordingly. /// - [Description("Updates a PayPal billing agreement for a customer.")] + [Description("Updates the billing address associated with a customer's vaulted PayPal billing agreement. Use this when a customer's billing information has changed and their PayPal payment method record in Shopify needs to be updated accordingly.")] public CustomerPaymentMethodPaypalBillingAgreementUpdatePayload? customerPaymentMethodPaypalBillingAgreementUpdate { get; set; } /// @@ -80689,15 +80979,15 @@ public class Mutation : GraphQLObject, IMutationRoot public CustomerPaymentMethodRemoteCreatePayload? customerPaymentMethodRemoteCreate { get; set; } /// - ///Revokes a customer's payment method. + ///Revokes a customer's vaulted payment method, preventing it from being used for future charges such as subscriptions, draft orders, or other payments. Revocation will fail if the payment method has active subscription contracts. Use this when a customer requests removal of their stored payment information or when a payment method is no longer valid. /// - [Description("Revokes a customer's payment method.")] + [Description("Revokes a customer's vaulted payment method, preventing it from being used for future charges such as subscriptions, draft orders, or other payments. Revocation will fail if the payment method has active subscription contracts. Use this when a customer requests removal of their stored payment information or when a payment method is no longer valid.")] public CustomerPaymentMethodRevokePayload? customerPaymentMethodRevoke { get; set; } /// - ///Sends a link to the customer so they can update a specific payment method. + ///Sends an email to a customer containing a secure link to update a specific vaulted payment method. This is commonly used when a customer's credit card is expiring or has been declined, and they need to provide updated payment details for ongoing subscriptions. The email can be customized with sender and BCC fields. /// - [Description("Sends a link to the customer so they can update a specific payment method.")] + [Description("Sends an email to a customer containing a secure link to update a specific vaulted payment method. This is commonly used when a customer's credit card is expiring or has been declined, and they need to provide updated payment details for ongoing subscriptions. The email can be customized with sender and BCC fields.")] public CustomerPaymentMethodSendUpdateEmailPayload? customerPaymentMethodSendUpdateEmail { get; set; } /// @@ -81264,9 +81554,9 @@ public class Mutation : GraphQLObject, IMutationRoot public DiscountRedeemCodeBulkAddPayload? discountRedeemCodeBulkAdd { get; set; } /// - ///Updates a dispute evidence. + ///Updates the evidence package for a Shopify Payments dispute. Merchants submit evidence — such as shipping confirmations, customer communications, and refund policies — to contest a dispute filed by a cardholder. This mutation updates the evidence fields. /// - [Description("Updates a dispute evidence.")] + [Description("Updates the evidence package for a Shopify Payments dispute. Merchants submit evidence — such as shipping confirmations, customer communications, and refund policies — to contest a dispute filed by a cardholder. This mutation updates the evidence fields.")] public DisputeEvidenceUpdatePayload? disputeEvidenceUpdate { get; set; } /// @@ -81872,9 +82162,9 @@ public class Mutation : GraphQLObject, IMutationRoot public GiftCardCreatePayload? giftCardCreate { get; set; } /// - ///Credit a gift card. + ///Adds funds to an existing gift card, increasing its available balance. Use this when a merchant wants to top up a customer's gift card — for example, as a promotional bonus, a customer service gesture, or to reload a reusable gift card. /// - [Description("Credit a gift card.")] + [Description("Adds funds to an existing gift card, increasing its available balance. Use this when a merchant wants to top up a customer's gift card — for example, as a promotional bonus, a customer service gesture, or to reload a reusable gift card.")] public GiftCardCreditPayload? giftCardCredit { get; set; } /// @@ -81885,27 +82175,27 @@ public class Mutation : GraphQLObject, IMutationRoot public GiftCardDeactivatePayload? giftCardDeactivate { get; set; } /// - ///Debit a gift card. + ///Removes funds from a gift card, decreasing its available balance. Use this for manual balance adjustments — for example, correcting an accidental over-credit or applying a fee. /// - [Description("Debit a gift card.")] + [Description("Removes funds from a gift card, decreasing its available balance. Use this for manual balance adjustments — for example, correcting an accidental over-credit or applying a fee.")] public GiftCardDebitPayload? giftCardDebit { get; set; } /// - ///Send notification to the customer of a gift card. + ///Sends a notification to the customer who purchased a gift card, including the gift card details and code. The notification is delivered using the customer's available contact method. Use this to resend the purchase confirmation or remind the purchaser about a gift card they bought. /// - [Description("Send notification to the customer of a gift card.")] + [Description("Sends a notification to the customer who purchased a gift card, including the gift card details and code. The notification is delivered using the customer's available contact method. Use this to resend the purchase confirmation or remind the purchaser about a gift card they bought.")] public GiftCardSendNotificationToCustomerPayload? giftCardSendNotificationToCustomer { get; set; } /// - ///Send notification to the recipient of a gift card. + ///Sends a notification to the designated recipient of a gift card, delivering the gift card code and redemption instructions. The notification is delivered using the recipient's available contact method. Use this to deliver or re-deliver the gift card to the intended recipient. /// - [Description("Send notification to the recipient of a gift card.")] + [Description("Sends a notification to the designated recipient of a gift card, delivering the gift card code and redemption instructions. The notification is delivered using the recipient's available contact method. Use this to deliver or re-deliver the gift card to the intended recipient.")] public GiftCardSendNotificationToRecipientPayload? giftCardSendNotificationToRecipient { get; set; } /// - ///Update a gift card. + ///Updates the properties of an existing gift card, such as its expiration date, note, or template suffix. Use this to modify gift card details — for example, extending an expiration date for a loyal customer or adding an internal note for tracking purposes. /// - [Description("Update a gift card.")] + [Description("Updates the properties of an existing gift card, such as its expiration date, note, or template suffix. Use this to modify gift card details — for example, extending an expiration date for a loyal customer or adding an internal note for tracking purposes.")] public GiftCardUpdatePayload? giftCardUpdate { get; set; } /// @@ -82164,21 +82454,53 @@ public class Mutation : GraphQLObject, IMutationRoot public InventoryTransferMarkAsReadyToShipPayload? inventoryTransferMarkAsReadyToShip { get; set; } /// - ///This mutation allows removing the shippable quantities of line items on a Transfer. - ///It removes all quantities of the item from the transfer that are not associated with shipments. + ///This mutation removes [`InventoryTransferLineItem`s](https://shopify.dev/docs/api/admin-graphql/latest/objects/InventoryTransferLineItem), + ///or portions of them, from a `DRAFT` or `READY_TO_SHIP` Transfer. + /// + ///For each referenced line item, if its entire quantity is still unallocated to a + ///shipment, the line item is removed; otherwise the line item remains on the + ///transfer with its quantity reduced to the allocated portion. Quantity allocated + ///to a shipment (whether the shipment is in draft, in transit, or already + ///received) is preserved. + /// + ///On `READY_TO_SHIP` transfers, removing items also returns the affected reserved + ///quantity to available inventory at the origin location. + /// + ///To change the quantity of a line item without removing it, use + ///[`inventoryTransferSetItems`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/inventoryTransferSetItems). /// - [Description("This mutation allows removing the shippable quantities of line items on a Transfer.\nIt removes all quantities of the item from the transfer that are not associated with shipments.")] + [Description("This mutation removes [`InventoryTransferLineItem`s](https://shopify.dev/docs/api/admin-graphql/latest/objects/InventoryTransferLineItem),\nor portions of them, from a `DRAFT` or `READY_TO_SHIP` Transfer.\n\nFor each referenced line item, if its entire quantity is still unallocated to a\nshipment, the line item is removed; otherwise the line item remains on the\ntransfer with its quantity reduced to the allocated portion. Quantity allocated\nto a shipment (whether the shipment is in draft, in transit, or already\nreceived) is preserved.\n\nOn `READY_TO_SHIP` transfers, removing items also returns the affected reserved\nquantity to available inventory at the origin location.\n\nTo change the quantity of a line item without removing it, use\n[`inventoryTransferSetItems`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/inventoryTransferSetItems).")] public InventoryTransferRemoveItemsPayload? inventoryTransferRemoveItems { get; set; } /// - ///This mutation allows for the setting of line items on a Transfer. Will replace the items already set, if any. + ///This mutation sets the quantity for one or more line items on a Transfer. + /// + ///Only the items you include in the `lineItems` field are updated. Items already on + ///the transfer but not referenced in your update will stay unchanged. Each inventory + ///item may appear at most once in `lineItems`; duplicate `inventoryItemId` entries + ///are rejected. + /// + ///For each entry in `lineItems`: + ///- If the inventory item isn't yet on the transfer, a new line item is added with + /// the provided quantity. + ///- If the inventory item is already on the transfer, the provided quantity + /// replaces the line item's [`processableQuantity`](https://shopify.dev/docs/api/admin-graphql/latest/objects/InventoryTransferLineItem#field-InventoryTransferLineItem.fields.processableQuantity). + /// Any quantity outside the processable portion (for example, already shipped or + /// picked for shipment) is preserved, so the resulting total quantity equals the + /// preserved portion plus the provided quantity. + /// + ///Passing a quantity of `0` is only allowed for transfers in `DRAFT` status; on + ///`READY_TO_SHIP` or `IN_PROGRESS` transfers it returns an `INVALID_QUANTITY` error. + ///On `DRAFT` transfers, `quantity: 0` leaves a zero-quantity line item on the + ///transfer; it does not remove the item. To remove a line item from a transfer, use + ///[`inventoryTransferRemoveItems`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/inventoryTransferRemoveItems). /// ///> Caution: ///> As of 2026-01, this mutation supports an optional idempotency key using the `@idempotent` directive. ///> As of 2026-04, the idempotency key is required and must be provided using the `@idempotent` directive. ///> For more information, see the [idempotency documentation](https://shopify.dev/docs/api/usage/idempotent-requests). /// - [Description("This mutation allows for the setting of line items on a Transfer. Will replace the items already set, if any.\n\n> Caution:\n> As of 2026-01, this mutation supports an optional idempotency key using the `@idempotent` directive.\n> As of 2026-04, the idempotency key is required and must be provided using the `@idempotent` directive.\n> For more information, see the [idempotency documentation](https://shopify.dev/docs/api/usage/idempotent-requests).")] + [Description("This mutation sets the quantity for one or more line items on a Transfer.\n\nOnly the items you include in the `lineItems` field are updated. Items already on\nthe transfer but not referenced in your update will stay unchanged. Each inventory\nitem may appear at most once in `lineItems`; duplicate `inventoryItemId` entries\nare rejected.\n\nFor each entry in `lineItems`:\n- If the inventory item isn't yet on the transfer, a new line item is added with\n the provided quantity.\n- If the inventory item is already on the transfer, the provided quantity\n replaces the line item's [`processableQuantity`](https://shopify.dev/docs/api/admin-graphql/latest/objects/InventoryTransferLineItem#field-InventoryTransferLineItem.fields.processableQuantity).\n Any quantity outside the processable portion (for example, already shipped or\n picked for shipment) is preserved, so the resulting total quantity equals the\n preserved portion plus the provided quantity.\n\nPassing a quantity of `0` is only allowed for transfers in `DRAFT` status; on\n`READY_TO_SHIP` or `IN_PROGRESS` transfers it returns an `INVALID_QUANTITY` error.\nOn `DRAFT` transfers, `quantity: 0` leaves a zero-quantity line item on the\ntransfer; it does not remove the item. To remove a line item from a transfer, use\n[`inventoryTransferRemoveItems`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/inventoryTransferRemoveItems).\n\n> Caution:\n> As of 2026-01, this mutation supports an optional idempotency key using the `@idempotent` directive.\n> As of 2026-04, the idempotency key is required and must be provided using the `@idempotent` directive.\n> For more information, see the [idempotency documentation](https://shopify.dev/docs/api/usage/idempotent-requests).")] public InventoryTransferSetItemsPayload? inventoryTransferSetItems { get; set; } /// @@ -82344,6 +82666,7 @@ public class Mutation : GraphQLObject, IMutationRoot ///Creates a new external marketing activity. /// [Description("Creates a new external marketing activity.")] + [Obsolete("Use `marketingActivityUpsertExternal` instead.")] public MarketingActivityCreateExternalPayload? marketingActivityCreateExternal { get; set; } /// @@ -82875,9 +83198,9 @@ public class Mutation : GraphQLObject, IMutationRoot public OrderOpenPayload? orderOpen { get; set; } /// - ///Create a risk assessment for an order. + ///Creates a fraud risk assessment for a specific order, evaluating the likelihood that the order is fraudulent based on various risk signals. Use this to trigger risk analysis on orders that need manual review or to integrate custom risk scoring into order processing workflows. /// - [Description("Create a risk assessment for an order.")] + [Description("Creates a fraud risk assessment for a specific order, evaluating the likelihood that the order is fraudulent based on various risk signals. Use this to trigger risk analysis on orders that need manual review or to integrate custom risk scoring into order processing workflows.")] public OrderRiskAssessmentCreatePayload? orderRiskAssessmentCreate { get; set; } /// @@ -82942,27 +83265,27 @@ public class Mutation : GraphQLObject, IMutationRoot public PageUpdatePayload? pageUpdate { get; set; } /// - ///Activates and deactivates payment customizations. + ///Activates or deactivates payment customizations for the shop. Payment customizations allow apps to hide, reorder, or rename payment methods at checkout based on cart contents, customer attributes, or other conditions. Use this to toggle customizations on or off without deleting them. /// - [Description("Activates and deactivates payment customizations.")] + [Description("Activates or deactivates payment customizations for the shop. Payment customizations allow apps to hide, reorder, or rename payment methods at checkout based on cart contents, customer attributes, or other conditions. Use this to toggle customizations on or off without deleting them.")] public PaymentCustomizationActivationPayload? paymentCustomizationActivation { get; set; } /// - ///Creates a payment customization. + ///Creates a new payment customization for the shop. Payment customizations let apps modify the payment methods shown at checkout — hiding, reordering, or renaming options based on cart contents, customer attributes, or other business logic. /// - [Description("Creates a payment customization.")] + [Description("Creates a new payment customization for the shop. Payment customizations let apps modify the payment methods shown at checkout — hiding, reordering, or renaming options based on cart contents, customer attributes, or other business logic.")] public PaymentCustomizationCreatePayload? paymentCustomizationCreate { get; set; } /// - ///Deletes a payment customization. + ///Permanently deletes a payment customization. Once deleted, the customization will no longer affect which payment methods appear at checkout. /// - [Description("Deletes a payment customization.")] + [Description("Permanently deletes a payment customization. Once deleted, the customization will no longer affect which payment methods appear at checkout.")] public PaymentCustomizationDeletePayload? paymentCustomizationDelete { get; set; } /// - ///Updates a payment customization. + ///Updates an existing payment customization, modifying its configuration for how payment methods are displayed at checkout. Use this to change the customization's title or enabled state. The customization's function can't be changed once set; create a new payment customization to use a different function. /// - [Description("Updates a payment customization.")] + [Description("Updates an existing payment customization, modifying its configuration for how payment methods are displayed at checkout. Use this to change the customization's title or enabled state. The customization's function can't be changed once set; create a new payment customization to use a different function.")] public PaymentCustomizationUpdatePayload? paymentCustomizationUpdate { get; set; } /// @@ -83913,9 +84236,6 @@ public class Mutation : GraphQLObject, IMutationRoot ///- Creates a [reverse fulfillment order](https://shopify.dev/docs/apps/build/orders-fulfillment/returns-apps/manage-reverse-fulfillment-orders), ///and enables you to create a [reverse delivery](https://shopify.dev/docs/apps/build/orders-fulfillment/returns-apps/manage-reverse-deliveries) ///for the reverse fulfillment order - ///- Creates a sales agreement with a `RETURN` reason, which links to all sales created for the return or exchange - ///- Generates sales records that reverse the sales records for the items being returned - ///- Generates sales records for any exchange line items /// ///After you've created a return, use the ///[`return`](https://shopify.dev/docs/api/admin-graphql/latest/queries/return) query to retrieve the @@ -83923,7 +84243,7 @@ public class Mutation : GraphQLObject, IMutationRoot ///[return management workflow](https://shopify.dev/docs/apps/build/orders-fulfillment/returns-apps/build-return-management) ///for merchants. /// - [Description("Creates a return from an existing order that has at least one fulfilled\n[line item](https://shopify.dev/docs/api/admin-graphql/latest/objects/LineItem)\nthat hasn't yet been refunded. If you create a return on an archived order, then the order is automatically\nunarchived.\n\nUse the `returnCreate` mutation when your workflow involves\n[approving](https://shopify.dev/docs/api/admin-graphql/latest/mutations/returnApproveRequest) or\n[declining](https://shopify.dev/docs/api/admin-graphql/latest/mutations/returnDeclineRequest) requested returns\noutside of the Shopify platform.\n\nThe `returnCreate` mutation performs the following actions:\n\n- Creates a return in the `OPEN` state, and assumes that the return request from the customer has already been\napproved\n- Creates a [reverse fulfillment order](https://shopify.dev/docs/apps/build/orders-fulfillment/returns-apps/manage-reverse-fulfillment-orders),\nand enables you to create a [reverse delivery](https://shopify.dev/docs/apps/build/orders-fulfillment/returns-apps/manage-reverse-deliveries)\nfor the reverse fulfillment order\n- Creates a sales agreement with a `RETURN` reason, which links to all sales created for the return or exchange\n- Generates sales records that reverse the sales records for the items being returned\n- Generates sales records for any exchange line items\n\nAfter you've created a return, use the\n[`return`](https://shopify.dev/docs/api/admin-graphql/latest/queries/return) query to retrieve the\nreturn by its ID. Learn more about providing a\n[return management workflow](https://shopify.dev/docs/apps/build/orders-fulfillment/returns-apps/build-return-management)\nfor merchants.")] + [Description("Creates a return from an existing order that has at least one fulfilled\n[line item](https://shopify.dev/docs/api/admin-graphql/latest/objects/LineItem)\nthat hasn't yet been refunded. If you create a return on an archived order, then the order is automatically\nunarchived.\n\nUse the `returnCreate` mutation when your workflow involves\n[approving](https://shopify.dev/docs/api/admin-graphql/latest/mutations/returnApproveRequest) or\n[declining](https://shopify.dev/docs/api/admin-graphql/latest/mutations/returnDeclineRequest) requested returns\noutside of the Shopify platform.\n\nThe `returnCreate` mutation performs the following actions:\n\n- Creates a return in the `OPEN` state, and assumes that the return request from the customer has already been\napproved\n- Creates a [reverse fulfillment order](https://shopify.dev/docs/apps/build/orders-fulfillment/returns-apps/manage-reverse-fulfillment-orders),\nand enables you to create a [reverse delivery](https://shopify.dev/docs/apps/build/orders-fulfillment/returns-apps/manage-reverse-deliveries)\nfor the reverse fulfillment order\n\nAfter you've created a return, use the\n[`return`](https://shopify.dev/docs/api/admin-graphql/latest/queries/return) query to retrieve the\nreturn by its ID. Learn more about providing a\n[return management workflow](https://shopify.dev/docs/apps/build/orders-fulfillment/returns-apps/build-return-management)\nfor merchants.")] public ReturnCreatePayload? returnCreate { get; set; } /// @@ -84526,21 +84846,21 @@ public class Mutation : GraphQLObject, IMutationRoot public SubscriptionDraftUpdatePayload? subscriptionDraftUpdate { get; set; } /// - ///Adds tags to a resource in the store. Supported resources include [`Order`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Order), [`DraftOrder`](https://shopify.dev/docs/api/admin-graphql/latest/objects/DraftOrder), [`Customer`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Customer), [`Product`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Product), and [`Article`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Article). + ///Adds tags to a resource. If the resource type doesn't support tagging, the `id` argument returns a resource-not-found error. /// ///Tags help merchants organize and filter resources. See the [`tags`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/tagsAdd#arguments-tags) argument for supported input formats. /// ///Learn more about [using tags to organize subscription orders](https://shopify.dev/docs/apps/build/purchase-options/subscriptions/fulfillments/sync-orders-subscriptions#order-tagging). /// - [Description("Adds tags to a resource in the store. Supported resources include [`Order`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Order), [`DraftOrder`](https://shopify.dev/docs/api/admin-graphql/latest/objects/DraftOrder), [`Customer`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Customer), [`Product`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Product), and [`Article`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Article).\n\nTags help merchants organize and filter resources. See the [`tags`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/tagsAdd#arguments-tags) argument for supported input formats.\n\nLearn more about [using tags to organize subscription orders](https://shopify.dev/docs/apps/build/purchase-options/subscriptions/fulfillments/sync-orders-subscriptions#order-tagging).")] + [Description("Adds tags to a resource. If the resource type doesn't support tagging, the `id` argument returns a resource-not-found error.\n\nTags help merchants organize and filter resources. See the [`tags`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/tagsAdd#arguments-tags) argument for supported input formats.\n\nLearn more about [using tags to organize subscription orders](https://shopify.dev/docs/apps/build/purchase-options/subscriptions/fulfillments/sync-orders-subscriptions#order-tagging).")] public TagsAddPayload? tagsAdd { get; set; } /// - ///Removes tags from an [`Order`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Order), [`DraftOrder`](https://shopify.dev/docs/api/admin-graphql/latest/objects/DraftOrder), [`Customer`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Customer), [`Product`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Product), or [`Article`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Article). + ///Removes tags from a resource. If the resource type doesn't support tagging, the `id` argument returns a resource-not-found error. /// ///Tags are searchable keywords that help organize and filter these resources. /// - [Description("Removes tags from an [`Order`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Order), [`DraftOrder`](https://shopify.dev/docs/api/admin-graphql/latest/objects/DraftOrder), [`Customer`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Customer), [`Product`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Product), or [`Article`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Article).\n\nTags are searchable keywords that help organize and filter these resources.")] + [Description("Removes tags from a resource. If the resource type doesn't support tagging, the `id` argument returns a resource-not-found error.\n\nTags are searchable keywords that help organize and filter these resources.")] public TagsRemovePayload? tagsRemove { get; set; } /// @@ -84694,21 +85014,27 @@ public class Mutation : GraphQLObject, IMutationRoot public UrlRedirectUpdatePayload? urlRedirectUpdate { get; set; } /// - ///Creates a validation. + ///Creates a cart and checkout validation: a server-side rule enforced before a customer can complete checkout. Each validation is powered by a cart and checkout validation function that you provide using `functionId` or `functionHandle`. + /// + ///Use `validationCreate` to apply custom rules at checkout, such as limiting item quantities, enforcing order minimums or maximums, or blocking checkout for restricted shipping addresses. Validations run on Shopify's servers and are enforced throughout checkout, so they can't be bypassed by the client. + /// + ///Validation errors always block checkout progress. The `blockOnFailure` field controls whether runtime exceptions, such as timeouts, also block checkout. /// - [Description("Creates a validation.")] + [Description("Creates a cart and checkout validation: a server-side rule enforced before a customer can complete checkout. Each validation is powered by a cart and checkout validation function that you provide using `functionId` or `functionHandle`.\n\nUse `validationCreate` to apply custom rules at checkout, such as limiting item quantities, enforcing order minimums or maximums, or blocking checkout for restricted shipping addresses. Validations run on Shopify's servers and are enforced throughout checkout, so they can't be bypassed by the client.\n\nValidation errors always block checkout progress. The `blockOnFailure` field controls whether runtime exceptions, such as timeouts, also block checkout.")] public ValidationCreatePayload? validationCreate { get; set; } /// - ///Deletes a validation. + ///Deletes a cart and checkout validation, removing its rule from the shop's checkout. Once deleted, its cart and checkout validation function no longer runs during checkout. /// - [Description("Deletes a validation.")] + [Description("Deletes a cart and checkout validation, removing its rule from the shop's checkout. Once deleted, its cart and checkout validation function no longer runs during checkout.")] public ValidationDeletePayload? validationDelete { get; set; } /// - ///Update a validation. + ///Updates a cart and checkout validation. Use `validationUpdate` to rename it, toggle whether it's enabled at checkout, change its `blockOnFailure` behavior, or update its metafields. + /// + ///Validation errors always block checkout progress. The `blockOnFailure` field controls whether runtime exceptions, such as timeouts, also block checkout. /// - [Description("Update a validation.")] + [Description("Updates a cart and checkout validation. Use `validationUpdate` to rename it, toggle whether it's enabled at checkout, change its `blockOnFailure` behavior, or update its metafields.\n\nValidation errors always block checkout progress. The `blockOnFailure` field controls whether runtime exceptions, such as timeouts, also block checkout.")] public ValidationUpdatePayload? validationUpdate { get; set; } /// @@ -86400,6 +86726,7 @@ public class Order : GraphQLObject, ICommentEventSubject, IHasEvents, IHa ///and [channel name](https://shopify.dev/docs/api/admin-graphql/latest/objects/ChannelDefinition#field-ChannelDefinition.fields.channelName), which helps to track order sources. /// [Description("Details about the sales channel that created the order, such as the [channel app type](https://shopify.dev/docs/api/admin-graphql/latest/objects/channel#field-Channel.fields.channelType)\nand [channel name](https://shopify.dev/docs/api/admin-graphql/latest/objects/ChannelDefinition#field-ChannelDefinition.fields.channelName), which helps to track order sources.")] + [Obsolete("Use `attribution` instead.")] public ChannelInformation? channelInformation { get; set; } /// @@ -88687,6 +89014,11 @@ public enum OrderCreateManualPaymentOrderCreateManualPaymentErrorCode /// [Description("Indicates that the processedAt field is invalid, such as when it references a future date.")] PROCESSED_AT_INVALID, + /// + ///The currency of the amount doesn't match the presentment currency of the order. + /// + [Description("The currency of the amount doesn't match the presentment currency of the order.")] + CURRENCY_MISMATCH, } public static class OrderCreateManualPaymentOrderCreateManualPaymentErrorCodeStringValues @@ -88697,6 +89029,7 @@ public static class OrderCreateManualPaymentOrderCreateManualPaymentErrorCodeStr public const string AMOUNT_EXCEEDS_BALANCE = @"AMOUNT_EXCEEDS_BALANCE"; public const string ORDER_IS_TEMPORARILY_UNAVAILABLE = @"ORDER_IS_TEMPORARILY_UNAVAILABLE"; public const string PROCESSED_AT_INVALID = @"PROCESSED_AT_INVALID"; + public const string CURRENCY_MISMATCH = @"CURRENCY_MISMATCH"; } /// @@ -88888,9 +89221,9 @@ public class OrderCreateOrderInput : GraphQLObject public string? presentmentCurrency { get; set; } /// - ///The date and time ([ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format) when an order was processed. This value is the date that appears on your orders and that's used in the analytic reports. If you're importing orders from an app or another platform, then you can set processed_at to a date and time in the past to match when the original order was created. + ///The date and time ([ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format) when an order was processed. This value is the date that appears on your orders and that's used in the analytic reports. If you're importing orders from an app or another platform, then you can set processed_at to a date and time in the past to match when the original order was created. As of API version 2026-07, values in the future are clamped to the current time. In earlier versions, future values return a `PROCESSED_AT_INVALID` error. /// - [Description("The date and time ([ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format) when an order was processed. This value is the date that appears on your orders and that's used in the analytic reports. If you're importing orders from an app or another platform, then you can set processed_at to a date and time in the past to match when the original order was created.")] + [Description("The date and time ([ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format) when an order was processed. This value is the date that appears on your orders and that's used in the analytic reports. If you're importing orders from an app or another platform, then you can set processed_at to a date and time in the past to match when the original order was created. As of API version 2026-07, values in the future are clamped to the current time. In earlier versions, future values return a `PROCESSED_AT_INVALID` error.")] public DateTime? processedAt { get; set; } /// @@ -88923,9 +89256,9 @@ public class OrderCreateOrderInput : GraphQLObject public string? sourceIdentifier { get; set; } /// - ///The source of the checkout. To use this field for sales attribution, you must register the channels that your app is managing. You can register the channels that your app is managing by completing [this Google Form](https://docs.google.com/forms/d/e/1FAIpQLScmVTZRQNjOJ7RD738mL1lGeFjqKVe_FM2tO9xsm21QEo5Ozg/viewform?usp=sf_link). After you've submited your request, you need to wait for your request to be processed by Shopify. You can find a list of your channels in the Partner Dashboard, in your app's Marketplace extension. You can specify a handle as the source_name value in your request. + ///The source channel that the order is attributed to. Set this to the handle of an order attribution definition configured for your sales channel app, such as `youtube` or `channel:amazon-us`. To set up order attribution for your app, follow the [order attribution guide](https://shopify.dev/docs/apps/build/sales-channels/order-attribution). /// - [Description("The source of the checkout. To use this field for sales attribution, you must register the channels that your app is managing. You can register the channels that your app is managing by completing [this Google Form](https://docs.google.com/forms/d/e/1FAIpQLScmVTZRQNjOJ7RD738mL1lGeFjqKVe_FM2tO9xsm21QEo5Ozg/viewform?usp=sf_link). After you've submited your request, you need to wait for your request to be processed by Shopify. You can find a list of your channels in the Partner Dashboard, in your app's Marketplace extension. You can specify a handle as the source_name value in your request.")] + [Description("The source channel that the order is attributed to. Set this to the handle of an order attribution definition configured for your sales channel app, such as `youtube` or `channel:amazon-us`. To set up order attribution for your app, follow the [order attribution guide](https://shopify.dev/docs/apps/build/sales-channels/order-attribution).")] public string? sourceName { get; set; } /// @@ -88965,9 +89298,9 @@ public class OrderCreateOrderInput : GraphQLObject public IEnumerable? transactions { get; set; } /// - ///The ID of the user logged into Shopify POS who processed the order, if applicable. + ///The ID of the user who processed the order, if applicable. /// - [Description("The ID of the user logged into Shopify POS who processed the order, if applicable.")] + [Description("The ID of the user who processed the order, if applicable.")] public string? userId { get; set; } } @@ -91792,25 +92125,31 @@ public class OrderTransaction : GraphQLObject, INode, IStoreCr public bool? test { get; set; } /// - ///Specifies the available amount to capture on the gateway. - ///Only available when an amount is capturable or manually mark as paid. + ///The amount of the original authorization that remains unsettled. + ///During a pending capture, this reflects the full outstanding balance including the pending amount. + ///When no capture is pending, this equals the capturable amount. + ///Only available when an amount is capturable or manually marked as paid. /// - [Description("Specifies the available amount to capture on the gateway.\nOnly available when an amount is capturable or manually mark as paid.")] + [Description("The amount of the original authorization that remains unsettled.\nDuring a pending capture, this reflects the full outstanding balance including the pending amount.\nWhen no capture is pending, this equals the capturable amount.\nOnly available when an amount is capturable or manually marked as paid.")] [Obsolete("Use `totalUnsettledSet` instead.")] public decimal? totalUnsettled { get; set; } /// - ///Specifies the available amount with currency to capture on the gateway in shop and presentment currencies. - ///Only available when an amount is capturable or manually mark as paid. + ///The amount of the original authorization that remains unsettled, in shop and presentment currencies. + ///During a pending capture, this reflects the full outstanding balance including the pending amount. + ///When no capture is pending, this equals the capturable amount. + ///Only available when an amount is capturable or manually marked as paid. /// - [Description("Specifies the available amount with currency to capture on the gateway in shop and presentment currencies.\nOnly available when an amount is capturable or manually mark as paid.")] + [Description("The amount of the original authorization that remains unsettled, in shop and presentment currencies.\nDuring a pending capture, this reflects the full outstanding balance including the pending amount.\nWhen no capture is pending, this equals the capturable amount.\nOnly available when an amount is capturable or manually marked as paid.")] public MoneyBag? totalUnsettledSet { get; set; } /// - ///Specifies the available amount with currency to capture on the gateway. - ///Only available when an amount is capturable or manually mark as paid. + ///The amount with currency of the original authorization that remains unsettled. + ///During a pending capture, this reflects the full outstanding balance including the pending amount. + ///When no capture is pending, this equals the capturable amount. + ///Only available when an amount is capturable or manually marked as paid. /// - [Description("Specifies the available amount with currency to capture on the gateway.\nOnly available when an amount is capturable or manually mark as paid.")] + [Description("The amount with currency of the original authorization that remains unsettled.\nDuring a pending capture, this reflects the full outstanding balance including the pending amount.\nWhen no capture is pending, this equals the capturable amount.\nOnly available when an amount is capturable or manually marked as paid.")] [Obsolete("Use `totalUnsettledSet` instead.")] public MoneyV2? totalUnsettledV2 { get; set; } @@ -93205,6 +93544,11 @@ public enum PaymentCustomizationErrorCode [Description("Could not create or update metafields.")] INVALID_METAFIELDS, /// + ///The maximum number of payment customizations per shop has been reached. + /// + [Description("The maximum number of payment customizations per shop has been reached.")] + MAXIMUM_PAYMENT_CUSTOMIZATIONS, + /// ///Function ID cannot be changed. /// [Description("Function ID cannot be changed.")] @@ -93233,6 +93577,7 @@ public static class PaymentCustomizationErrorCodeStringValues public const string MAXIMUM_ACTIVE_PAYMENT_CUSTOMIZATIONS = @"MAXIMUM_ACTIVE_PAYMENT_CUSTOMIZATIONS"; public const string REQUIRED_INPUT_FIELD = @"REQUIRED_INPUT_FIELD"; public const string INVALID_METAFIELDS = @"INVALID_METAFIELDS"; + public const string MAXIMUM_PAYMENT_CUSTOMIZATIONS = @"MAXIMUM_PAYMENT_CUSTOMIZATIONS"; 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"; @@ -94789,9 +95134,9 @@ public enum PointOfSaleDevicePaymentSessionCloseUserErrorCode [Description("Reason code not found.")] REASON_CODE_NOT_FOUND, /// - ///The currency code does not match the point of sale device payment session currency. + ///The currency code does not match the cash drawer currency. /// - [Description("The currency code does not match the point of sale device payment session currency.")] + [Description("The currency code does not match the cash drawer currency.")] CURRENCY_MISMATCH, /// ///Point of sale device has no cash drawer associated with it. @@ -94924,9 +95269,9 @@ public enum PointOfSaleDevicePaymentSessionCountUserErrorCode [Description("Reason code not found.")] REASON_CODE_NOT_FOUND, /// - ///The currency code does not match the point of sale device payment session currency. + ///The currency code does not match the cash drawer currency. /// - [Description("The currency code does not match the point of sale device payment session currency.")] + [Description("The currency code does not match the cash drawer currency.")] CURRENCY_MISMATCH, /// ///Point of sale device has no cash drawer associated with it. @@ -99212,12 +99557,13 @@ public class Product : GraphQLObject, IHasEvents, IHasMetafieldDefiniti public string? productType { get; set; } /// - ///The number of + ///The total number of ///[publications](https://shopify.dev/docs/api/admin-graphql/latest/objects/Publication) - ///that a resource is published to, without + ///that a resource is published to, including publications with ///[feedback errors](https://shopify.dev/docs/api/admin-graphql/latest/objects/ResourceFeedback). + ///To get a count that excludes publications with feedback errors, use `availablePublicationsCount`. /// - [Description("The number of\n[publications](https://shopify.dev/docs/api/admin-graphql/latest/objects/Publication)\nthat a resource is published to, without\n[feedback errors](https://shopify.dev/docs/api/admin-graphql/latest/objects/ResourceFeedback).")] + [Description("The total number of\n[publications](https://shopify.dev/docs/api/admin-graphql/latest/objects/Publication)\nthat a resource is published to, including publications with\n[feedback errors](https://shopify.dev/docs/api/admin-graphql/latest/objects/ResourceFeedback).\nTo get a count that excludes publications with feedback errors, use `availablePublicationsCount`.")] [Obsolete("Use `resourcePublicationsCount` instead.")] [NonNull] public int? publicationCount { get; set; } @@ -99306,19 +99652,24 @@ public class Product : GraphQLObject, IHasEvents, IHasMetafieldDefiniti public ResourcePublicationConnection? resourcePublications { get; set; } /// - ///The number of + ///The total number of ///[publications](https://shopify.dev/docs/api/admin-graphql/latest/objects/Publication) - ///that a resource is published to, without + ///that a resource is published to, including publications with ///[feedback errors](https://shopify.dev/docs/api/admin-graphql/latest/objects/ResourceFeedback). + ///To get a count that excludes publications with feedback errors, use `availablePublicationsCount`. /// - [Description("The number of\n[publications](https://shopify.dev/docs/api/admin-graphql/latest/objects/Publication)\nthat a resource is published to, without\n[feedback errors](https://shopify.dev/docs/api/admin-graphql/latest/objects/ResourceFeedback).")] + [Description("The total number of\n[publications](https://shopify.dev/docs/api/admin-graphql/latest/objects/Publication)\nthat a resource is published to, including publications with\n[feedback errors](https://shopify.dev/docs/api/admin-graphql/latest/objects/ResourceFeedback).\nTo get a count that excludes publications with feedback errors, use `availablePublicationsCount`.")] public Count? resourcePublicationsCount { get; set; } /// ///The list of resources that are either published or staged to be published to a ///[publication](https://shopify.dev/docs/api/admin-graphql/latest/objects/Publication). + ///By default, only publications to `APP` catalog types are returned. + ///For `Product` and `ProductVariant`, use the `catalogType` argument to retrieve + ///publications for other catalog types, such as `COMPANY_LOCATION` (B2B) or `MARKET`. + ///`Collection` only supports publications to `APP` catalog types. /// - [Description("The list of resources that are either published or staged to be published to a\n[publication](https://shopify.dev/docs/api/admin-graphql/latest/objects/Publication).")] + [Description("The list of resources that are either published or staged to be published to a\n[publication](https://shopify.dev/docs/api/admin-graphql/latest/objects/Publication).\nBy default, only publications to `APP` catalog types are returned.\nFor `Product` and `ProductVariant`, use the `catalogType` argument to retrieve\npublications for other catalog types, such as `COMPANY_LOCATION` (B2B) or `MARKET`.\n`Collection` only supports publications to `APP` catalog types.")] [NonNull] public ResourcePublicationV2Connection? resourcePublicationsV2 { get; set; } @@ -100780,6 +101131,61 @@ public class ProductDeletePayload : GraphQLObject public IEnumerable? userErrors { get; set; } } + /// + ///Controls which product discounts can apply together on the same cart line. By + ///default, only one product discount applies per line. Available only on a Shopify + ///Plus plan. + /// + ///For discounts to apply together, they must match tags in both directions. Each + ///discount has two tag sets: the tags that identify the discount, and the tags that + ///it agrees to apply with. Use the `tags` field on the discount input to set the + ///discount's own tags. Use this input object to set the tags that the discount can + ///apply with. Two discounts apply together only if each one allows at least one tag + ///that the other is tagged with. Any number of product discounts can apply to the + ///same line if this two-way match holds for every pair in the group. + /// + ///Example: Discount A is tagged with `LOYALTY` and allows `SEASONAL`, and Discount B + ///is tagged with `SEASONAL` and allows `LOYALTY`. They apply together. To add a + ///third discount, it must meet the same mutual-match rule with both A and B. + /// + ///Buy X Get Y discounts stack only on the customer-gets products (GY), not the + ///customer-buys products (BX). See + ///[Limitations for discount combinations](https://help.shopify.com/manual/discounts/discount-combinations#considerations) + ///for details. + /// + [Description("Controls which product discounts can apply together on the same cart line. By\ndefault, only one product discount applies per line. Available only on a Shopify\nPlus plan.\n\nFor discounts to apply together, they must match tags in both directions. Each\ndiscount has two tag sets: the tags that identify the discount, and the tags that\nit agrees to apply with. Use the `tags` field on the discount input to set the\ndiscount's own tags. Use this input object to set the tags that the discount can\napply with. Two discounts apply together only if each one allows at least one tag\nthat the other is tagged with. Any number of product discounts can apply to the\nsame line if this two-way match holds for every pair in the group.\n\nExample: Discount A is tagged with `LOYALTY` and allows `SEASONAL`, and Discount B\nis tagged with `SEASONAL` and allows `LOYALTY`. They apply together. To add a\nthird discount, it must meet the same mutual-match rule with both A and B.\n\nBuy X Get Y discounts stack only on the customer-gets products (GY), not the\ncustomer-buys products (BX). See\n[Limitations for discount combinations](https://help.shopify.com/manual/discounts/discount-combinations#considerations)\nfor details.")] + public class ProductDiscountsWithTagsOnSameCartLineInput : GraphQLObject + { + /// + ///The tags to add to this discount's combination list. This field doesn't add + ///tags to the discount itself. To change the tags on the discount, use the + ///discount input's `tags` field or the + ///[`tagsAdd`](https://shopify.dev/api/admin-graphql/latest/mutations/tagsadd) + ///and [`tagsRemove`](https://shopify.dev/api/admin-graphql/latest/mutations/tagsremove) + ///mutations. + /// + ///If another product discount has a matching tag and also allows at least one + ///tag on this discount, then both discounts can apply to the same cart line. + /// + [Description("The tags to add to this discount's combination list. This field doesn't add\ntags to the discount itself. To change the tags on the discount, use the\ndiscount input's `tags` field or the\n[`tagsAdd`](https://shopify.dev/api/admin-graphql/latest/mutations/tagsadd)\nand [`tagsRemove`](https://shopify.dev/api/admin-graphql/latest/mutations/tagsremove)\nmutations.\n\nIf another product discount has a matching tag and also allows at least one\ntag on this discount, then both discounts can apply to the same cart line.")] + public IEnumerable? add { get; set; } + + /// + ///The tags to remove from this discount's combination list. This field doesn't + ///remove tags from the discount itself. To change the tags on the discount, use + ///the discount input's `tags` field or the + ///[`tagsAdd`](https://shopify.dev/api/admin-graphql/latest/mutations/tagsadd) + ///and [`tagsRemove`](https://shopify.dev/api/admin-graphql/latest/mutations/tagsremove) + ///mutations. + /// + ///If this discount and another product discount still match tags in both + ///directions after the removal, then both discounts can still apply to the same + ///cart line. + /// + [Description("The tags to remove from this discount's combination list. This field doesn't\nremove tags from the discount itself. To change the tags on the discount, use\nthe discount input's `tags` field or the\n[`tagsAdd`](https://shopify.dev/api/admin-graphql/latest/mutations/tagsadd)\nand [`tagsRemove`](https://shopify.dev/api/admin-graphql/latest/mutations/tagsremove)\nmutations.\n\nIf this discount and another product discount still match tags in both\ndirections after the removal, then both discounts can still apply to the same\ncart line.")] + public IEnumerable? remove { get; set; } + } + /// ///Represents a product duplication job. /// @@ -106775,12 +107181,13 @@ public interface IPublishable : IGraphQLObject public Count? availablePublicationsCount { get; } /// - ///The number of + ///The total number of ///[publications](https://shopify.dev/docs/api/admin-graphql/latest/objects/Publication) - ///that a resource is published to, without + ///that a resource is published to, including publications with ///[feedback errors](https://shopify.dev/docs/api/admin-graphql/latest/objects/ResourceFeedback). + ///To get a count that excludes publications with feedback errors, use `availablePublicationsCount`. /// - [Description("The number of\n[publications](https://shopify.dev/docs/api/admin-graphql/latest/objects/Publication)\nthat a resource is published to, without\n[feedback errors](https://shopify.dev/docs/api/admin-graphql/latest/objects/ResourceFeedback).")] + [Description("The total number of\n[publications](https://shopify.dev/docs/api/admin-graphql/latest/objects/Publication)\nthat a resource is published to, including publications with\n[feedback errors](https://shopify.dev/docs/api/admin-graphql/latest/objects/ResourceFeedback).\nTo get a count that excludes publications with feedback errors, use `availablePublicationsCount`.")] [Obsolete("Use `resourcePublicationsCount` instead.")] [NonNull] public int? publicationCount { get; } @@ -106830,19 +107237,24 @@ public interface IPublishable : IGraphQLObject public ResourcePublicationConnection? resourcePublications { get; } /// - ///The number of + ///The total number of ///[publications](https://shopify.dev/docs/api/admin-graphql/latest/objects/Publication) - ///that a resource is published to, without + ///that a resource is published to, including publications with ///[feedback errors](https://shopify.dev/docs/api/admin-graphql/latest/objects/ResourceFeedback). + ///To get a count that excludes publications with feedback errors, use `availablePublicationsCount`. /// - [Description("The number of\n[publications](https://shopify.dev/docs/api/admin-graphql/latest/objects/Publication)\nthat a resource is published to, without\n[feedback errors](https://shopify.dev/docs/api/admin-graphql/latest/objects/ResourceFeedback).")] + [Description("The total number of\n[publications](https://shopify.dev/docs/api/admin-graphql/latest/objects/Publication)\nthat a resource is published to, including publications with\n[feedback errors](https://shopify.dev/docs/api/admin-graphql/latest/objects/ResourceFeedback).\nTo get a count that excludes publications with feedback errors, use `availablePublicationsCount`.")] public Count? resourcePublicationsCount { get; } /// ///The list of resources that are either published or staged to be published to a ///[publication](https://shopify.dev/docs/api/admin-graphql/latest/objects/Publication). + ///By default, only publications to `APP` catalog types are returned. + ///For `Product` and `ProductVariant`, use the `catalogType` argument to retrieve + ///publications for other catalog types, such as `COMPANY_LOCATION` (B2B) or `MARKET`. + ///`Collection` only supports publications to `APP` catalog types. /// - [Description("The list of resources that are either published or staged to be published to a\n[publication](https://shopify.dev/docs/api/admin-graphql/latest/objects/Publication).")] + [Description("The list of resources that are either published or staged to be published to a\n[publication](https://shopify.dev/docs/api/admin-graphql/latest/objects/Publication).\nBy default, only publications to `APP` catalog types are returned.\nFor `Product` and `ProductVariant`, use the `catalogType` argument to retrieve\npublications for other catalog types, such as `COMPANY_LOCATION` (B2B) or `MARKET`.\n`Collection` only supports publications to `APP` catalog types.")] [NonNull] public ResourcePublicationV2Connection? resourcePublicationsV2 { get; } @@ -108036,6 +108448,7 @@ public class QueryRoot : GraphQLObject, IQueryRoot ///Returns a `DiscountAutomaticNode` resource by ID. /// [Description("Returns a `DiscountAutomaticNode` resource by ID.")] + [Obsolete("Use `discountNode` instead.")] public DiscountAutomaticNode? automaticDiscountNode { get; set; } /// @@ -108322,6 +108735,7 @@ public class QueryRoot : GraphQLObject, IQueryRoot ///Returns a [code discount](https://help.shopify.com/manual/discounts/discount-types#discount-codes) resource by ID. /// [Description("Returns a [code discount](https://help.shopify.com/manual/discounts/discount-types#discount-codes) resource by ID.")] + [Obsolete("Use `discountNode` instead.")] public DiscountCodeNode? codeDiscountNode { get; set; } /// @@ -108394,9 +108808,9 @@ public class QueryRoot : GraphQLObject, IQueryRoot public Collection? collectionByIdentifier { get; set; } /// - ///Lists all rules that can be used to create smart collections. + ///Lists all rules that can be used to create collections. /// - [Description("Lists all rules that can be used to create smart collections.")] + [Description("Lists all rules that can be used to create collections.")] [NonNull] public IEnumerable? collectionRulesConditions { get; set; } @@ -108419,8 +108833,6 @@ public class QueryRoot : GraphQLObject, IQueryRoot ///- Build a browsing interface for a store's product groupings. ///- Create collection searching, sorting, and filtering experiences (for example, by title, type, or published status). ///- Sync collection data with external systems. - ///- Manage both custom ([manual](https://help.shopify.com/manual/products/collections/manual-shopify-collection)) - ///and smart ([automated](https://help.shopify.com/manual/products/collections/automated-collections)) collections. /// ///The `collections` query supports [pagination](https://shopify.dev/docs/api/usage/pagination-graphql) ///for large catalogs and [saved searches](https://shopify.dev/docs/api/admin-graphql/latest/queries/collections#arguments-savedSearchId) @@ -108431,13 +108843,13 @@ public class QueryRoot : GraphQLObject, IQueryRoot ///- Basic collection information (title, description, handle, and type) ///- Collection image and SEO metadata ///- Product count and product relationships - ///- Collection rules (for smart collections) + ///- Collection rules or conditions ///- Publishing status and publication details ///- Metafields and custom attributes /// - ///Learn more about [using metafields with smart collections](https://shopify.dev/docs/apps/build/custom-data/metafields/use-metafield-capabilities). + ///Learn more about [using metafields with collection conditions](https://shopify.dev/docs/apps/build/custom-data/metafields/use-metafield-capabilities). /// - [Description("Retrieves a list of [collections](https://shopify.dev/docs/api/admin-graphql/latest/objects/Collection)\nin a store. Collections are groups of [products](https://shopify.dev/docs/api/admin-graphql/latest/objects/Product)\nthat merchants can organize for display in their [online store](https://shopify.dev/docs/apps/build/online-store) and\nother [sales channels](https://shopify.dev/docs/apps/build/sales-channels).\nFor example, an athletics store might create different collections for running attire, shoes, and accessories.\n\nUse the `collections` query when you need to:\n\n- Build a browsing interface for a store's product groupings.\n- Create collection searching, sorting, and filtering experiences (for example, by title, type, or published status).\n- Sync collection data with external systems.\n- Manage both custom ([manual](https://help.shopify.com/manual/products/collections/manual-shopify-collection))\nand smart ([automated](https://help.shopify.com/manual/products/collections/automated-collections)) collections.\n\nThe `collections` query supports [pagination](https://shopify.dev/docs/api/usage/pagination-graphql)\nfor large catalogs and [saved searches](https://shopify.dev/docs/api/admin-graphql/latest/queries/collections#arguments-savedSearchId)\nfor frequently used collection queries.\n\nThe `collections` query returns collections with their associated metadata, including:\n\n- Basic collection information (title, description, handle, and type)\n- Collection image and SEO metadata\n- Product count and product relationships\n- Collection rules (for smart collections)\n- Publishing status and publication details\n- Metafields and custom attributes\n\nLearn more about [using metafields with smart collections](https://shopify.dev/docs/apps/build/custom-data/metafields/use-metafield-capabilities).")] + [Description("Retrieves a list of [collections](https://shopify.dev/docs/api/admin-graphql/latest/objects/Collection)\nin a store. Collections are groups of [products](https://shopify.dev/docs/api/admin-graphql/latest/objects/Product)\nthat merchants can organize for display in their [online store](https://shopify.dev/docs/apps/build/online-store) and\nother [sales channels](https://shopify.dev/docs/apps/build/sales-channels).\nFor example, an athletics store might create different collections for running attire, shoes, and accessories.\n\nUse the `collections` query when you need to:\n\n- Build a browsing interface for a store's product groupings.\n- Create collection searching, sorting, and filtering experiences (for example, by title, type, or published status).\n- Sync collection data with external systems.\n\nThe `collections` query supports [pagination](https://shopify.dev/docs/api/usage/pagination-graphql)\nfor large catalogs and [saved searches](https://shopify.dev/docs/api/admin-graphql/latest/queries/collections#arguments-savedSearchId)\nfor frequently used collection queries.\n\nThe `collections` query returns collections with their associated metadata, including:\n\n- Basic collection information (title, description, handle, and type)\n- Collection image and SEO metadata\n- Product count and product relationships\n- Collection rules or conditions\n- Publishing status and publication details\n- Metafields and custom attributes\n\nLearn more about [using metafields with collection conditions](https://shopify.dev/docs/apps/build/custom-data/metafields/use-metafield-capabilities).")] [NonNull] public CollectionConnection? collections { get; set; } @@ -108534,11 +108946,11 @@ public class QueryRoot : GraphQLObject, IQueryRoot public AppInstallation? currentAppInstallation { get; set; } /// - ///Returns the current app's most recent [`BulkOperation`](https://shopify.dev/docs/api/admin-graphql/latest/objects/BulkOperation). Apps can run one bulk query and one bulk mutation operation at a time per shop. + ///Returns the current app's most recent [`BulkOperation`](https://shopify.dev/docs/api/admin-graphql/latest/objects/BulkOperation). Bulk query and bulk mutation operations can run at the same time per shop. The number of concurrent operations that an app can run depends on the API version. For the applicable concurrency limits, refer to the [bulk operations guide](https://shopify.dev/docs/api/usage/bulk-operations/queries). /// ///The operation type parameter determines whether to retrieve the most recent query or mutation bulk operation. Use this query to check the operation's status, track its progress, and retrieve the result URL when it completes. /// - [Description("Returns the current app's most recent [`BulkOperation`](https://shopify.dev/docs/api/admin-graphql/latest/objects/BulkOperation). Apps can run one bulk query and one bulk mutation operation at a time per shop.\n\nThe operation type parameter determines whether to retrieve the most recent query or mutation bulk operation. Use this query to check the operation's status, track its progress, and retrieve the result URL when it completes.")] + [Description("Returns the current app's most recent [`BulkOperation`](https://shopify.dev/docs/api/admin-graphql/latest/objects/BulkOperation). Bulk query and bulk mutation operations can run at the same time per shop. The number of concurrent operations that an app can run depends on the API version. For the applicable concurrency limits, refer to the [bulk operations guide](https://shopify.dev/docs/api/usage/bulk-operations/queries).\n\nThe operation type parameter determines whether to retrieve the most recent query or mutation bulk operation. Use this query to check the operation's status, track its progress, and retrieve the result URL when it completes.")] [Obsolete("Use `bulkOperations` with status filter instead.")] public BulkOperation? currentBulkOperation { get; set; } @@ -108580,21 +108992,32 @@ public class QueryRoot : GraphQLObject, IQueryRoot /// ///Returns a preview of a customer merge request. + /// + ///The `customerOneId` and `customerTwoId` arguments don't guarantee which customer is kept. Shopify + ///selects the resulting customer in this order: + ///1. If `overrideFields.customerIdOfEmailToKeep` is provided and valid, then the selected customer is kept. + ///2. If exactly one customer has an email address, then that customer is kept. + ///3. If both customers have email addresses, then account state and email marketing consent determine + /// the customer that's kept: an `enabled` account wins over other account states; otherwise, an + /// `invited` account can win when consent doesn't already prefer `subscribed` or `pending`; otherwise + /// the consent result is used. If those rules don't prefer either customer, then `customerTwoId` is kept. + ///4. If neither customer has an email address, then `customerTwoId` is kept. /// - [Description("Returns a preview of a customer merge request.")] + [Description("Returns a preview of a customer merge request.\n\nThe `customerOneId` and `customerTwoId` arguments don't guarantee which customer is kept. Shopify\nselects the resulting customer in this order:\n1. If `overrideFields.customerIdOfEmailToKeep` is provided and valid, then the selected customer is kept.\n2. If exactly one customer has an email address, then that customer is kept.\n3. If both customers have email addresses, then account state and email marketing consent determine\n the customer that's kept: an `enabled` account wins over other account states; otherwise, an\n `invited` account can win when consent doesn't already prefer `subscribed` or `pending`; otherwise\n the consent result is used. If those rules don't prefer either customer, then `customerTwoId` is kept.\n4. If neither customer has an email address, then `customerTwoId` is kept.")] [NonNull] public CustomerMergePreview? customerMergePreview { get; set; } /// - ///Returns a CustomerPaymentMethod resource by its ID. + ///Returns a vaulted customer payment method by its ID, including the instrument type (credit card, PayPal, etc.), billing address, and current status. Optionally includes revoked payment methods. Use this to look up a specific saved payment method for a customer — for example, to check whether a subscription's payment method is still valid or to display stored payment details. /// - [Description("Returns a CustomerPaymentMethod resource by its ID.")] + [Description("Returns a vaulted customer payment method by its ID, including the instrument type (credit card, PayPal, etc.), billing address, and current status. Optionally includes revoked payment methods. Use this to look up a specific saved payment method for a customer — for example, to check whether a subscription's payment method is still valid or to display stored payment details.")] public CustomerPaymentMethod? customerPaymentMethod { get; set; } /// ///List of the shop's customer saved searches. /// [Description("List of the shop's customer saved searches.")] + [Obsolete("Use `segments` instead.")] [NonNull] public SavedSearchConnection? customerSavedSearches { get; set; } @@ -108751,9 +109174,9 @@ public class QueryRoot : GraphQLObject, IQueryRoot public ShopifyPaymentsDisputeEvidence? disputeEvidence { get; set; } /// - ///All disputes related to the Shop. + ///Returns a paginated list of all Shopify Payments disputes for the shop. Disputes occur when a buyer files a complaint with their payments provider, and the merchant must provide evidence to contest it. Each dispute includes the status, amount, reason, and associated order. Use this to monitor and manage open chargebacks and track dispute resolution outcomes. /// - [Description("All disputes related to the Shop.")] + [Description("Returns a paginated list of all Shopify Payments disputes for the shop. Disputes occur when a buyer files a complaint with their payments provider, and the merchant must provide evidence to contest it. Each dispute includes the status, amount, reason, and associated order. Use this to monitor and manage open chargebacks and track dispute resolution outcomes.")] [NonNull] public ShopifyPaymentsDisputeConnection? disputes { get; set; } @@ -108880,9 +109303,9 @@ public class QueryRoot : GraphQLObject, IQueryRoot public FinanceAppAccessPolicy? financeAppAccessPolicy { get; set; } /// - ///Returns the KYC information for the shop's Shopify Payments account, used in embedded finance apps. + ///Returns Know Your Customer (KYC) information for the shop's Shopify Payments account. KYC data includes verified identity and business details collected during onboarding. This is primarily used by embedded finance apps (e.g., Shopify Balance, Bill Pay) that need to verify the merchant's identity without requiring a separate KYC process. /// - [Description("Returns the KYC information for the shop's Shopify Payments account, used in embedded finance apps.")] + [Description("Returns Know Your Customer (KYC) information for the shop's Shopify Payments account. KYC data includes verified identity and business details collected during onboarding. This is primarily used by embedded finance apps (e.g., Shopify Balance, Bill Pay) that need to verify the merchant's identity without requiring a separate KYC process.")] public FinanceKycInformation? financeKycInformation { get; set; } /// @@ -108958,9 +109381,9 @@ public class QueryRoot : GraphQLObject, IQueryRoot public GiftCardConnection? giftCards { get; set; } /// - ///The total number of gift cards issued for the shop. Limited to a maximum of 10000 by default. + ///Returns the total count of gift cards that have been issued by the shop. Use this for dashboard summaries or to understand the scale of a merchant's gift card program. The count includes all gift cards regardless of status (active, disabled, or fully redeemed). Limited to a maximum of 10000 by default. /// - [Description("The total number of gift cards issued for the shop. Limited to a maximum of 10000 by default.")] + [Description("Returns the total count of gift cards that have been issued by the shop. Use this for dashboard summaries or to understand the scale of a merchant's gift card program. The count includes all gift cards regardless of status (active, disabled, or fully redeemed). Limited to a maximum of 10000 by default.")] public Count? giftCardsCount { get; set; } /// @@ -109851,6 +110274,7 @@ public class QueryRoot : GraphQLObject, IQueryRoot ///A list of a shop's segment migrations. /// [Description("A list of a shop's segment migrations.")] + [Obsolete("Use the migrated segment ID and query `segment` directly.")] [NonNull] public SegmentMigrationConnection? segmentMigrations { get; set; } @@ -109924,15 +110348,15 @@ public class QueryRoot : GraphQLObject, IQueryRoot public IEnumerable? shopLocales { get; set; } /// - ///Returns a Shop Pay payment request receipt. + ///Returns a single Shop Pay payment request receipt by its ID. Payment request receipts document completed Shop Pay transactions, including the amount, customer details, and payment status. Use this to look up a specific Shop Pay transaction for order reconciliation or customer support. /// - [Description("Returns a Shop Pay payment request receipt.")] + [Description("Returns a single Shop Pay payment request receipt by its ID. Payment request receipts document completed Shop Pay transactions, including the amount, customer details, and payment status. Use this to look up a specific Shop Pay transaction for order reconciliation or customer support.")] public ShopPayPaymentRequestReceipt? shopPayPaymentRequestReceipt { get; set; } /// - ///Returns a list of Shop Pay payment request receipts. + ///Returns a paginated list of Shop Pay payment request receipts for the shop. Each receipt documents a completed Shop Pay transaction. Use this to review Shop Pay transaction history, generate reports, or audit Shop Pay payment activity. /// - [Description("Returns a list of Shop Pay payment request receipts.")] + [Description("Returns a paginated list of Shop Pay payment request receipts for the shop. Each receipt documents a completed Shop Pay transaction. Use this to review Shop Pay transaction history, generate reports, or audit Shop Pay payment activity.")] public ShopPayPaymentRequestReceiptConnection? shopPayPaymentRequestReceipts { get; set; } /// @@ -110010,9 +110434,9 @@ public class QueryRoot : GraphQLObject, IQueryRoot public StoreCreditAccount? storeCreditAccount { get; set; } /// - ///Returns the store credit configuration for a shop. + ///Returns the store credit configuration for a shop, including whether store credit is enabled for customers at checkout. Use this to display the current state of a merchant's store credit program or check eligibility before issuing store credit to customers. /// - [Description("Returns the store credit configuration for a shop.")] + [Description("Returns the store credit configuration for a shop, including whether store credit is enabled for customers at checkout. Use this to display the current state of a merchant's store credit program or check eligibility before issuing store credit to customers.")] [NonNull] public StoreCreditConfiguration? storeCreditConfiguration { get; set; } @@ -112299,6 +112723,11 @@ public enum ReturnErrorCode [Description("A required feature is not enabled.")] FEATURE_NOT_ENABLED, /// + ///The requested configuration cannot be applied to this standard return policy which is managed for you in compliance with relevant regulations. + /// + [Description("The requested configuration cannot be applied to this standard return policy which is managed for you in compliance with relevant regulations.")] + INCOMPATIBLE_WITH_STANDARD_POLICY, + /// ///A resource was not in the correct state for the operation to succeed. /// [Description("A resource was not in the correct state for the operation to succeed.")] @@ -112347,6 +112776,7 @@ public static class ReturnErrorCodeStringValues public const string ALREADY_EXISTS = @"ALREADY_EXISTS"; public const string CREATION_FAILED = @"CREATION_FAILED"; public const string FEATURE_NOT_ENABLED = @"FEATURE_NOT_ENABLED"; + public const string INCOMPATIBLE_WITH_STANDARD_POLICY = @"INCOMPATIBLE_WITH_STANDARD_POLICY"; public const string INVALID_STATE = @"INVALID_STATE"; public const string MISSING_PERMISSION = @"MISSING_PERMISSION"; public const string NOTIFICATION_FAILED = @"NOTIFICATION_FAILED"; @@ -115667,6 +116097,11 @@ public enum SearchResultType { CUSTOMER, DRAFT_ORDER, + /// + ///An inventory transfer. + /// + [Description("An inventory transfer.")] + INVENTORY_TRANSFER, PRODUCT, COLLECTION, /// @@ -115712,6 +116147,7 @@ public static class SearchResultTypeStringValues { public const string CUSTOMER = @"CUSTOMER"; public const string DRAFT_ORDER = @"DRAFT_ORDER"; + public const string INVENTORY_TRANSFER = @"INVENTORY_TRANSFER"; public const string PRODUCT = @"PRODUCT"; public const string COLLECTION = @"COLLECTION"; public const string FILE = @"FILE"; @@ -121358,6 +121794,11 @@ public enum ShopPayPaymentRequestReceiptProcessingStatusErrorCode [Description("The gateway or merchant configuration doesn't support a feature, such as network tokenization.")] UNSUPPORTED_FEATURE, /// + ///Too many failed CVV verification attempts. + /// + [Description("Too many failed CVV verification attempts.")] + CVV_ATTEMPTS_EXCEEDED, + /// ///There was an unknown error with processing the payment. /// [Description("There was an unknown error with processing the payment.")] @@ -121400,6 +121841,7 @@ public static class ShopPayPaymentRequestReceiptProcessingStatusErrorCodeStringV public const string CONFIG_ERROR = @"CONFIG_ERROR"; public const string TEST_MODE_LIVE_CARD = @"TEST_MODE_LIVE_CARD"; public const string UNSUPPORTED_FEATURE = @"UNSUPPORTED_FEATURE"; + public const string CVV_ATTEMPTS_EXCEEDED = @"CVV_ATTEMPTS_EXCEEDED"; public const string GENERIC_ERROR = @"GENERIC_ERROR"; public const string INVALID_COUNTRY = @"INVALID_COUNTRY"; public const string INVALID_AMOUNT = @"INVALID_AMOUNT"; @@ -121549,9 +121991,9 @@ public class ShopPlan : GraphQLObject public bool? partnerDevelopment { get; set; } /// - ///The public display name of the shop's billing plan. Possible values are: Advanced, Agentic, Agentic Enterprise, Basic, Development, Grow, Inactive, Lite, Other, Paused, Plus, Plus Trial, Retail, Shop Component, Shopify Finance, Staff Business, Starter, and Trial. + ///The public display name of the shop's billing plan. Possible values are: Advanced, Agentic, Agentic Enterprise, 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, Agentic, Agentic Enterprise, 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, Agentic, Agentic Enterprise, Basic, Development, Grow, Inactive, Lite, Other, Paused, Plus, Plus Trial, Retail, Shop Component, Staff Business, Starter, and Trial.")] [NonNull] public string? publicDisplayName { get; set; } @@ -124471,26 +124913,6 @@ public enum ShopifyPaymentsTransactionType [Description("The tax_adjustment_credit_reversal transaction type.")] TAX_ADJUSTMENT_CREDIT_REVERSAL, /// - ///The agentic_fee_tax_debit transaction type. - /// - [Description("The agentic_fee_tax_debit transaction type.")] - AGENTIC_FEE_TAX_DEBIT, - /// - ///The agentic_fee_tax_debit_reversal transaction type. - /// - [Description("The agentic_fee_tax_debit_reversal transaction type.")] - AGENTIC_FEE_TAX_DEBIT_REVERSAL, - /// - ///The agentic_fee_tax_credit transaction type. - /// - [Description("The agentic_fee_tax_credit transaction type.")] - AGENTIC_FEE_TAX_CREDIT, - /// - ///The agentic_fee_tax_credit_reversal transaction type. - /// - [Description("The agentic_fee_tax_credit_reversal transaction type.")] - AGENTIC_FEE_TAX_CREDIT_REVERSAL, - /// ///The billing_debit transaction type. /// [Description("The billing_debit transaction type.")] @@ -124923,10 +125345,6 @@ public static class ShopifyPaymentsTransactionTypeStringValues public const string TAX_ADJUSTMENT_DEBIT_REVERSAL = @"TAX_ADJUSTMENT_DEBIT_REVERSAL"; public const string TAX_ADJUSTMENT_CREDIT = @"TAX_ADJUSTMENT_CREDIT"; public const string TAX_ADJUSTMENT_CREDIT_REVERSAL = @"TAX_ADJUSTMENT_CREDIT_REVERSAL"; - public const string AGENTIC_FEE_TAX_DEBIT = @"AGENTIC_FEE_TAX_DEBIT"; - public const string AGENTIC_FEE_TAX_DEBIT_REVERSAL = @"AGENTIC_FEE_TAX_DEBIT_REVERSAL"; - public const string AGENTIC_FEE_TAX_CREDIT = @"AGENTIC_FEE_TAX_CREDIT"; - public const string AGENTIC_FEE_TAX_CREDIT_REVERSAL = @"AGENTIC_FEE_TAX_CREDIT_REVERSAL"; public const string BILLING_DEBIT = @"BILLING_DEBIT"; public const string BILLING_DEBIT_REVERSAL = @"BILLING_DEBIT_REVERSAL"; public const string SHOP_CASH_CREDIT = @"SHOP_CASH_CREDIT"; @@ -126226,6 +126644,11 @@ public enum StandardMetafieldDefinitionEnableUserErrorCode [Description("You have reached the maximum allowed definitions to be used as admin filters.")] OWNER_TYPE_LIMIT_EXCEEDED_FOR_USE_AS_ADMIN_FILTERS, /// + ///The associated standard metaobject definition template is not valid for the metafield definition and prevented enabling it. + /// + [Description("The associated standard metaobject definition template is not valid for the metafield definition and prevented enabling it.")] + INVALID_STANDARD_METAOBJECT, + /// ///The metafield definition does not support pinning. /// [Description("The metafield definition does not support pinning.")] @@ -126253,6 +126676,7 @@ public static class StandardMetafieldDefinitionEnableUserErrorCodeStringValues public const string INVALID_CAPABILITY = @"INVALID_CAPABILITY"; public const string CAPABILITY_CANNOT_BE_DISABLED = @"CAPABILITY_CANNOT_BE_DISABLED"; public const string OWNER_TYPE_LIMIT_EXCEEDED_FOR_USE_AS_ADMIN_FILTERS = @"OWNER_TYPE_LIMIT_EXCEEDED_FOR_USE_AS_ADMIN_FILTERS"; + public const string INVALID_STANDARD_METAOBJECT = @"INVALID_STANDARD_METAOBJECT"; public const string UNSUPPORTED_PINNING = @"UNSUPPORTED_PINNING"; public const string ADMIN_ACCESS_INPUT_NOT_ALLOWED = @"ADMIN_ACCESS_INPUT_NOT_ALLOWED"; public const string INVALID_INPUT_COMBINATION = @"INVALID_INPUT_COMBINATION"; @@ -127449,25 +127873,31 @@ public interface IStoreCreditAccountTransactionOrigin : IGraphQLObject public bool? test { get; set; } /// - ///Specifies the available amount to capture on the gateway. - ///Only available when an amount is capturable or manually mark as paid. + ///The amount of the original authorization that remains unsettled. + ///During a pending capture, this reflects the full outstanding balance including the pending amount. + ///When no capture is pending, this equals the capturable amount. + ///Only available when an amount is capturable or manually marked as paid. /// - [Description("Specifies the available amount to capture on the gateway.\nOnly available when an amount is capturable or manually mark as paid.")] + [Description("The amount of the original authorization that remains unsettled.\nDuring a pending capture, this reflects the full outstanding balance including the pending amount.\nWhen no capture is pending, this equals the capturable amount.\nOnly available when an amount is capturable or manually marked as paid.")] [Obsolete("Use `totalUnsettledSet` instead.")] public decimal? totalUnsettled { get; set; } /// - ///Specifies the available amount with currency to capture on the gateway in shop and presentment currencies. - ///Only available when an amount is capturable or manually mark as paid. + ///The amount of the original authorization that remains unsettled, in shop and presentment currencies. + ///During a pending capture, this reflects the full outstanding balance including the pending amount. + ///When no capture is pending, this equals the capturable amount. + ///Only available when an amount is capturable or manually marked as paid. /// - [Description("Specifies the available amount with currency to capture on the gateway in shop and presentment currencies.\nOnly available when an amount is capturable or manually mark as paid.")] + [Description("The amount of the original authorization that remains unsettled, in shop and presentment currencies.\nDuring a pending capture, this reflects the full outstanding balance including the pending amount.\nWhen no capture is pending, this equals the capturable amount.\nOnly available when an amount is capturable or manually marked as paid.")] public MoneyBag? totalUnsettledSet { get; set; } /// - ///Specifies the available amount with currency to capture on the gateway. - ///Only available when an amount is capturable or manually mark as paid. + ///The amount with currency of the original authorization that remains unsettled. + ///During a pending capture, this reflects the full outstanding balance including the pending amount. + ///When no capture is pending, this equals the capturable amount. + ///Only available when an amount is capturable or manually marked as paid. /// - [Description("Specifies the available amount with currency to capture on the gateway.\nOnly available when an amount is capturable or manually mark as paid.")] + [Description("The amount with currency of the original authorization that remains unsettled.\nDuring a pending capture, this reflects the full outstanding balance including the pending amount.\nWhen no capture is pending, this equals the capturable amount.\nOnly available when an amount is capturable or manually marked as paid.")] [Obsolete("Use `totalUnsettledSet` instead.")] public MoneyV2? totalUnsettledV2 { get; set; } @@ -132433,6 +132863,16 @@ public enum SubscriptionDraftErrorCode [Description("Another operation updated the contract concurrently as the commit was in progress.")] STALE_CONTRACT, /// + ///The contract draft has too many lines. + /// + [Description("The contract draft has too many lines.")] + TOO_MANY_LINES, + /// + ///The contract draft has too many discounts. + /// + [Description("The contract draft has too many discounts.")] + TOO_MANY_DISCOUNTS, + /// ///Currency is not enabled. /// [Description("Currency is not enabled.")] @@ -132575,6 +133015,8 @@ public static class SubscriptionDraftErrorCodeStringValues public const string INVALID_ADJUSTMENT_TYPE = @"INVALID_ADJUSTMENT_TYPE"; public const string INVALID_ADJUSTMENT_VALUE = @"INVALID_ADJUSTMENT_VALUE"; public const string STALE_CONTRACT = @"STALE_CONTRACT"; + public const string TOO_MANY_LINES = @"TOO_MANY_LINES"; + public const string TOO_MANY_DISCOUNTS = @"TOO_MANY_DISCOUNTS"; public const string CURRENCY_NOT_ENABLED = @"CURRENCY_NOT_ENABLED"; public const string HAS_FUTURE_EDITS = @"HAS_FUTURE_EDITS"; public const string BILLING_CYCLE_PRESENT = @"BILLING_CYCLE_PRESENT"; @@ -134279,6 +134721,16 @@ public enum TaxExemption [Description("This customer is exempt from specific taxes for holding a valid RESELLER_EXEMPTION in Saskatchewan.")] CA_SK_RESELLER_EXEMPTION, /// + ///This customer is exempt from VPT (Vapour Products Tax) for holding a valid VPT_RESELLER_EXEMPTION in Saskatchewan. + /// + [Description("This customer is exempt from VPT (Vapour Products Tax) for holding a valid VPT_RESELLER_EXEMPTION in Saskatchewan.")] + CA_SK_VPT_RESELLER_EXEMPTION, + /// + ///This customer is exempt from VPT (Vapour Products Tax) for holding a valid VPT_RESELLER_EXEMPTION in Newfoundland and Labrador. + /// + [Description("This customer is exempt from VPT (Vapour Products Tax) for holding a valid VPT_RESELLER_EXEMPTION in Newfoundland and Labrador.")] + CA_NL_VPT_RESELLER_EXEMPTION, + /// ///This customer is exempt from specific taxes for holding a valid DIPLOMAT_EXEMPTION in Canada. /// [Description("This customer is exempt from specific taxes for holding a valid DIPLOMAT_EXEMPTION in Canada.")] @@ -134626,6 +135078,8 @@ public static class TaxExemptionStringValues public const string CA_BC_RESELLER_EXEMPTION = @"CA_BC_RESELLER_EXEMPTION"; public const string CA_MB_RESELLER_EXEMPTION = @"CA_MB_RESELLER_EXEMPTION"; public const string CA_SK_RESELLER_EXEMPTION = @"CA_SK_RESELLER_EXEMPTION"; + public const string CA_SK_VPT_RESELLER_EXEMPTION = @"CA_SK_VPT_RESELLER_EXEMPTION"; + public const string CA_NL_VPT_RESELLER_EXEMPTION = @"CA_NL_VPT_RESELLER_EXEMPTION"; public const string CA_DIPLOMAT_EXEMPTION = @"CA_DIPLOMAT_EXEMPTION"; public const string CA_BC_COMMERCIAL_FISHERY_EXEMPTION = @"CA_BC_COMMERCIAL_FISHERY_EXEMPTION"; public const string CA_MB_COMMERCIAL_FISHERY_EXEMPTION = @"CA_MB_COMMERCIAL_FISHERY_EXEMPTION"; @@ -140150,6 +140604,11 @@ public enum WebhookSubscriptionTopic [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 `machine_translation_batch/completed` events. Occurs when a whole-shop machine translation batch completes. + /// + [Description("The webhook topic for `machine_translation_batch/completed` events. Occurs when a whole-shop machine translation batch completes.")] + MACHINE_TRANSLATION_BATCH_COMPLETED, + /// ///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.")] @@ -140796,6 +141255,7 @@ public static class WebhookSubscriptionTopicStringValues public const string LOCALES_CREATE = @"LOCALES_CREATE"; public const string LOCALES_UPDATE = @"LOCALES_UPDATE"; public const string LOCALES_DESTROY = @"LOCALES_DESTROY"; + public const string MACHINE_TRANSLATION_BATCH_COMPLETED = @"MACHINE_TRANSLATION_BATCH_COMPLETED"; 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 9a6f7d3..46fa819 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 = "2026-04"; + public const string DEFAULT_API_VERSION = "2026-07"; 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 ba46a46..e8ab4a0 100644 --- a/ShopifyNet/ShopifyNet.csproj +++ b/ShopifyNet/ShopifyNet.csproj @@ -5,7 +5,7 @@ https://github.com/Wish-Org/ShopifyNet https://github.com/Wish-Org/ShopifyNet .NET utilities for Shopify GraphQL - 2.15.0 + 2.16.0 shopify graphql types classes schema generator strongly typed