diff --git a/ShopifySharp.Tests/ShopifySharp.Tests.csproj b/ShopifySharp.Tests/ShopifySharp.Tests.csproj index 615497b4..77ab7d11 100644 --- a/ShopifySharp.Tests/ShopifySharp.Tests.csproj +++ b/ShopifySharp.Tests/ShopifySharp.Tests.csproj @@ -31,7 +31,7 @@ - + diff --git a/ShopifySharp/Entities/GraphQL/GraphQLSchema.generated.cs b/ShopifySharp/Entities/GraphQL/GraphQLSchema.generated.cs index 5c3521f3..bdee7333 100644 --- a/ShopifySharp/Entities/GraphQL/GraphQLSchema.generated.cs +++ b/ShopifySharp/Entities/GraphQL/GraphQLSchema.generated.cs @@ -99,6 +99,10 @@ public class AbandonedCheckout : GraphQLObject, INavigable, I /// public string? id { get; set; } /// + ///A list of the line items in this checkout. + /// + public AbandonedCheckoutLineItemConnection? lineItems { get; set; } + /// ///The number of products in the checkout. /// public int? lineItemsQuantity { get; set; } @@ -108,6 +112,111 @@ public class AbandonedCheckout : GraphQLObject, INavigable, I public MoneyBag? totalPriceSet { get; set; } } + /// + ///A single line item in an abandoned checkout. + /// + public class AbandonedCheckoutLineItem : GraphQLObject, INode + { + /// + ///A list of extra information that has been added to the line item. + /// + public IEnumerable? customAttributes { get; set; } + /// + ///Final total price for the entire quantity of this line item, including discounts. + /// + public MoneyBag? discountedTotalPriceSet { get; set; } + /// + ///The total price for the entire quantity of this line item, after all discounts are applied, at both the line item and code-based line item level. + /// + public MoneyBag? discountedTotalPriceWithCodeDiscount { get; set; } + /// + ///The price of a single variant unit after discounts are applied at the line item level, in shop and presentment currencies. + /// + public MoneyBag? discountedUnitPriceSet { get; set; } + /// + ///The price of a single variant unit after all discounts are applied, at both the line item and code-based line item level. + /// + public MoneyBag? discountedUnitPriceWithCodeDiscount { get; set; } + /// + ///A globally-unique ID. + /// + public string? id { get; set; } + /// + ///The image associated with the line item's variant or product. + ///NULL if the line item has no product, or if neither the variant nor the product have an image. + /// + public Image? image { get; set; } + /// + ///Original total price for the entire quantity of this line item, before discounts. + /// + public MoneyBag? originalTotalPriceSet { get; set; } + /// + ///Original price for a single unit of this line item, before discounts. + /// + public MoneyBag? originalUnitPriceSet { get; set; } + /// + ///Product for this line item. + ///NULL for custom line items and products that were deleted after checkout began. + /// + public Product? product { get; set; } + /// + ///The quantity of the line item. + /// + public int? quantity { get; set; } + /// + ///SKU for the inventory item associated with the variant, if any. + /// + public string? sku { get; set; } + /// + ///Title of the line item. Defaults to the product's title. + /// + public string? title { get; set; } + /// + ///Product variant for this line item. + ///NULL for custom line items and variants that were deleted after checkout began. + /// + public ProductVariant? variant { get; set; } + /// + ///Title of the variant for this line item. + ///NULL for custom line items and products that don't have distinct variants. + /// + public string? variantTitle { get; set; } + } + + /// + ///An auto-generated type for paginating through multiple AbandonedCheckoutLineItems. + /// + public class AbandonedCheckoutLineItemConnection : GraphQLObject, IConnectionWithNodesAndEdges + { + /// + ///A list of edges. + /// + public IEnumerable? edges { get; set; } + /// + ///A list of the nodes contained in AbandonedCheckoutLineItemEdge. + /// + public IEnumerable? nodes { get; set; } + /// + ///Information to aid in pagination. + /// + public PageInfo? pageInfo { get; set; } + } + + /// + ///An auto-generated type which holds one AbandonedCheckoutLineItem and a cursor during pagination. + /// + public class AbandonedCheckoutLineItemEdge : GraphQLObject, IEdge + { + /// + ///A cursor for use in pagination. + /// + public string? cursor { get; set; } + /// + ///The item at the end of AbandonedCheckoutLineItemEdge. + /// + public AbandonedCheckoutLineItem? node { get; set; } + } + /// ///A browse, cart, or checkout that was abandoned by a customer. /// @@ -138,6 +247,10 @@ public class Abandonment : GraphQLObject, INode /// public Customer? customer { get; set; } /// + ///Whether the customer has a draft order since this abandonment has been abandoned. + /// + public bool? customerHasNoDraftOrderSinceAbandonment { get; set; } + /// ///Whether the customer has completed an order since this checkout has been abandoned. /// public bool? customerHasNoOrderSinceAbandonment { get; set; } @@ -1376,100 +1489,6 @@ public class AppRevenueAttributionRecordConnection : GraphQLObject - ///Return type for `appRevenueAttributionRecordCreate` mutation. - /// - public class AppRevenueAttributionRecordCreatePayload : GraphQLObject - { - /// - ///The created app revenue attribution record. - /// - public AppRevenueAttributionRecord? appRevenueAttributionRecord { get; set; } - /// - ///The list of errors that occurred from executing the mutation. - /// - public IEnumerable? userErrors { get; set; } - } - - /// - ///An error that occurs during the execution of `AppRevenueAttributionRecordCreate`. - /// - public class AppRevenueAttributionRecordCreateUserError : GraphQLObject, IDisplayableError - { - /// - ///The error code. - /// - public AppRevenueAttributionRecordCreateUserErrorCode? code { get; set; } - /// - ///The path to the input field that caused the error. - /// - public IEnumerable? field { get; set; } - /// - ///The error message. - /// - public string? message { get; set; } - } - - /// - ///Possible error codes that can be returned by `AppRevenueAttributionRecordCreateUserError`. - /// - public enum AppRevenueAttributionRecordCreateUserErrorCode - { - /// - ///The input value is invalid. - /// - INVALID, - /// - ///The input value is already taken. - /// - TAKEN, - } - - /// - ///Return type for `appRevenueAttributionRecordDelete` mutation. - /// - public class AppRevenueAttributionRecordDeletePayload : GraphQLObject - { - /// - ///The ID of the revenue attribution that was deleted, if one was. - /// - public string? deletedId { get; set; } - /// - ///The list of errors that occurred from executing the mutation. - /// - public IEnumerable? userErrors { get; set; } - } - - /// - ///An error that occurs during the execution of `AppRevenueAttributionRecordDelete`. - /// - public class AppRevenueAttributionRecordDeleteUserError : GraphQLObject, IDisplayableError - { - /// - ///The error code. - /// - public AppRevenueAttributionRecordDeleteUserErrorCode? code { get; set; } - /// - ///The path to the input field that caused the error. - /// - public IEnumerable? field { get; set; } - /// - ///The error message. - /// - public string? message { get; set; } - } - - /// - ///Possible error codes that can be returned by `AppRevenueAttributionRecordDeleteUserError`. - /// - public enum AppRevenueAttributionRecordDeleteUserErrorCode - { - /// - ///The input value is invalid. - /// - INVALID, - } - /// ///An auto-generated type which holds one AppRevenueAttributionRecord and a cursor during pagination. /// @@ -2124,6 +2143,74 @@ public enum BadgeType INFO, } + /// + ///The set of valid sort keys for the BalanceTransaction query. + /// + public enum BalanceTransactionSortKeys + { + /// + ///Sort by the `payout_date` value. + /// + PAYOUT_DATE, + /// + ///Sort by the `payout_status` value. + /// + PAYOUT_STATUS, + /// + ///Sort by the `processed_at` value. + /// + PROCESSED_AT, + /// + ///Sort by the `amount` value. + /// + AMOUNT, + /// + ///Sort by the `fee` value. + /// + FEE, + /// + ///Sort by the `net` value. + /// + NET, + /// + ///Sort by the `transaction_type` value. + /// + TRANSACTION_TYPE, + /// + ///Sort by the `order_name` value. + /// + ORDER_NAME, + /// + ///Sort by the `payment_method_name` value. + /// + PAYMENT_METHOD_NAME, + /// + ///Sort by the `id` value. + /// + ID, + /// + ///Sort by relevance to the search terms when the `query` parameter is specified on the connection. + ///Don't use this sort key when no search query is specified. + /// + RELEVANCE, + } + + /// + ///Generic payment details that are related to a transaction. + /// + [JsonPolymorphic(TypeDiscriminatorPropertyName = "__typename")] + [JsonDerivedType(typeof(CardPaymentDetails), typeDiscriminator: "CardPaymentDetails")] + [JsonDerivedType(typeof(ShopPayInstallmentsPaymentDetails), typeDiscriminator: "ShopPayInstallmentsPaymentDetails")] + public interface IBasePaymentDetails : IGraphQLObject + { + public CardPaymentDetails? AsCardPaymentDetails() => this as CardPaymentDetails; + public ShopPayInstallmentsPaymentDetails? AsShopPayInstallmentsPaymentDetails() => this as ShopPayInstallmentsPaymentDetails; + /// + ///The name of payment method used by the buyer. + /// + public string? paymentMethodName { get; } + } + /// ///Basic events chronicle resource activities such as the creation of an article, the fulfillment of an order, or ///the addition of a product. @@ -2216,6 +2303,14 @@ public enum BillingAttemptUserErrorCode ///Origin time needs to be within the selected billing cycle's start and end at date. /// ORIGIN_TIME_OUT_OF_RANGE, + /// + ///Subscription contract is under review. + /// + CONTRACT_UNDER_REVIEW, + /// + ///Subscription contract cannot be billed once terminated. + /// + CONTRACT_TERMINATED, } /// @@ -3303,7 +3398,7 @@ public class CalculatedScriptDiscountApplication : GraphQLObject ///Card payment details related to a transaction. /// - public class CardPaymentDetails : GraphQLObject, IPaymentDetails + public class CardPaymentDetails : GraphQLObject, IBasePaymentDetails, IPaymentDetails { /// ///The response code from the address verification system (AVS). The code is always a single letter. @@ -3338,6 +3433,10 @@ public class CardPaymentDetails : GraphQLObject, IPaymentDet /// public string? number { get; set; } /// + ///The name of payment method used by the buyer. + /// + public string? paymentMethodName { get; set; } + /// ///Digital wallet used for the payment. /// public DigitalWallet? wallet { get; set; } @@ -3348,6 +3447,10 @@ public class CardPaymentDetails : GraphQLObject, IPaymentDet /// public class CartTransform : GraphQLObject, IHasMetafields, INode { + /// + ///Whether a run failure will block cart and checkout operations. + /// + public bool? blockOnFailure { get; set; } /// ///The ID for the Cart Transform function. /// @@ -3518,6 +3621,36 @@ public class CartTransformEdge : GraphQLObject, IEdge + ///Represents the cart transform feature configuration for the shop. + /// + public class CartTransformEligibleOperations : GraphQLObject + { + /// + ///The shop is eligible for expand operations. + /// + public bool? expandOperation { get; set; } + /// + ///The shop is eligible for merge operations. + /// + public bool? mergeOperation { get; set; } + /// + ///The shop is eligible for update operations. + /// + public bool? updateOperation { get; set; } + } + + /// + ///Represents the cart transform feature configuration for the shop. + /// + public class CartTransformFeature : GraphQLObject + { + /// + ///The cart transform operations eligible for the shop. + /// + public CartTransformEligibleOperations? eligibleOperations { get; set; } + } + /// ///A list of products with publishing and pricing information. ///A catalog can be associated with a specific context, such as a [`Market`](https://shopify.dev/api/admin-graphql/current/objects/market), [`CompanyLocation`](https://shopify.dev/api/admin-graphql/current/objects/companylocation), or [`App`](https://shopify.dev/api/admin-graphql/current/objects/app). @@ -3778,6 +3911,10 @@ public enum CatalogUserErrorCode /// CATALOG_CONTEXT_DOES_NOT_SUPPORT_QUANTITY_RULES, /// + ///Quantity price breaks can be associated only with company location catalogs. + /// + CATALOG_CONTEXT_DOES_NOT_SUPPORT_QUANTITY_PRICE_BREAKS, + /// ///The catalog can't be associated with more than one market. /// CANNOT_ADD_MORE_THAN_ONE_MARKET, @@ -4056,6 +4193,1158 @@ public class ChannelInformation : GraphQLObject, INode public string? id { get; set; } } + /// + ///The settings of checkout visual customizations. + /// + ///To learn more about updating checkout branding settings, refer to the + ///[checkoutBrandingUpsert](https://shopify.dev/api/admin-graphql/unstable/mutations/checkoutBrandingUpsert) mutation. + /// + public class CheckoutBranding : GraphQLObject + { + /// + ///The customizations that apply to specific components or areas of the user interface. + /// + public CheckoutBrandingCustomizations? customizations { get; set; } + /// + ///The design system allows you to set values that represent specific attributes + ///of your brand like color and font. These attributes are used throughout the user + ///interface. This brings consistency and allows you to easily make broad design changes. + /// + public CheckoutBrandingDesignSystem? designSystem { get; set; } + } + + /// + ///Possible values for the background style. + /// + public enum CheckoutBrandingBackgroundStyle + { + /// + ///The Solid background style. + /// + SOLID, + /// + ///The None background style. + /// + NONE, + } + + /// + ///Possible values for the border. + /// + public enum CheckoutBrandingBorder + { + /// + ///The None border. + /// + NONE, + /// + ///The Block End border. + /// + BLOCK_END, + /// + ///The Full border. + /// + FULL, + } + + /// + ///The buttons customizations. + /// + public class CheckoutBrandingButton : GraphQLObject + { + /// + ///The background style used for buttons. + /// + public CheckoutBrandingBackgroundStyle? background { get; set; } + /// + ///The block padding used for buttons. + /// + public CheckoutBrandingSpacing? blockPadding { get; set; } + /// + ///The border used for buttons. + /// + public CheckoutBrandingSimpleBorder? border { get; set; } + /// + ///The corner radius used for buttons. + /// + public CheckoutBrandingCornerRadius? cornerRadius { get; set; } + /// + ///The inline padding used for buttons. + /// + public CheckoutBrandingSpacing? inlinePadding { get; set; } + /// + ///The typography used for buttons. + /// + public CheckoutBrandingTypographyStyle? typography { get; set; } + } + + /// + ///Colors for buttons. + /// + public class CheckoutBrandingButtonColorRoles : GraphQLObject + { + /// + ///The color of accented objects (links and focused state). + /// + public string? accent { get; set; } + /// + ///The color of the background. + /// + public string? background { get; set; } + /// + ///The color of borders. + /// + public string? border { get; set; } + /// + ///The decorative color for highlighting specific parts of the user interface. + /// + public string? decorative { get; set; } + /// + ///The colors of the button on hover. + /// + public CheckoutBrandingColorRoles? hover { get; set; } + /// + ///The color of icons. + /// + public string? icon { get; set; } + /// + ///The color of text. + /// + public string? text { get; set; } + } + + /// + ///The checkboxes customizations. + /// + public class CheckoutBrandingCheckbox : GraphQLObject + { + /// + ///The corner radius used for checkboxes. + /// + public CheckoutBrandingCornerRadius? cornerRadius { get; set; } + } + + /// + ///The choice list customizations. + /// + public class CheckoutBrandingChoiceList : GraphQLObject + { + /// + ///The settings that apply to the 'group' variant of ChoiceList. + /// + public CheckoutBrandingChoiceListGroup? group { get; set; } + } + + /// + ///The settings that apply to the 'group' variant of ChoiceList. + /// + public class CheckoutBrandingChoiceListGroup : GraphQLObject + { + /// + ///The spacing between UI elements in the list. + /// + public CheckoutBrandingSpacingKeyword? spacing { get; set; } + } + + /// + ///A set of colors for customizing the overall look and feel of the checkout. + /// + public class CheckoutBrandingColorGlobal : GraphQLObject + { + /// + ///A color used for interaction, like links and focus states. + /// + public string? accent { get; set; } + /// + ///A color strongly associated with the merchant, currently used for elements + ///like primary and secondary buttons. + /// + public string? brand { get; set; } + /// + ///A semantic color used for components that communicate critical content. + /// + public string? critical { get; set; } + /// + ///A color used to highlight certain areas of the user interface. + /// + public string? decorative { get; set; } + /// + ///A semantic color used for components that communicate informative content. + /// + public string? info { get; set; } + /// + ///A semantic color used for components that communicate successful actions. + /// + public string? success { get; set; } + /// + ///A semantic color used for components that display content that requires attention. + /// + public string? warning { get; set; } + } + + /// + ///A group of colors used together on a surface. + /// + public class CheckoutBrandingColorRoles : GraphQLObject + { + /// + ///The color of accented objects (links and focused state). + /// + public string? accent { get; set; } + /// + ///The color of the background. + /// + public string? background { get; set; } + /// + ///The color of borders. + /// + public string? border { get; set; } + /// + ///The decorative color for highlighting specific parts of the user interface. + /// + public string? decorative { get; set; } + /// + ///The color of icons. + /// + public string? icon { get; set; } + /// + ///The color of text. + /// + public string? text { get; set; } + } + + /// + ///A base set of color customizations that is applied to an area of Checkout, from which every component + ///pulls its colors from. + /// + public class CheckoutBrandingColorScheme : GraphQLObject + { + /// + ///The main colors of a scheme. + /// + public CheckoutBrandingColorRoles? @base { get; set; } + /// + ///The colors of form controls. + /// + public CheckoutBrandingControlColorRoles? control { get; set; } + /// + ///The colors of the primary button. + /// + public CheckoutBrandingButtonColorRoles? primaryButton { get; set; } + /// + ///The colors of the secondary button. + /// + public CheckoutBrandingButtonColorRoles? secondaryButton { get; set; } + } + + /// + ///The possible color schemes. + /// + public enum CheckoutBrandingColorSchemeSelection + { + /// + ///Transparent color scheme selection. + /// + TRANSPARENT, + /// + ///Color Scheme1 color scheme selection. + /// + COLOR_SCHEME1, + /// + ///Color Scheme2 color scheme selection. + /// + COLOR_SCHEME2, + } + + /// + ///The color schemes. + /// + public class CheckoutBrandingColorSchemes : GraphQLObject + { + /// + ///The primary scheme. By default, it’s used for the main area of the interface. + /// + public CheckoutBrandingColorScheme? scheme1 { get; set; } + /// + ///The secondary scheme. By default, it’s used for secondary areas, like Checkout’s Order Summary. + /// + public CheckoutBrandingColorScheme? scheme2 { get; set; } + } + + /// + ///The possible colors. + /// + public enum CheckoutBrandingColorSelection + { + /// + ///Transparent color selection. + /// + TRANSPARENT, + } + + /// + ///The color settings for global colors and color schemes. + /// + public class CheckoutBrandingColors : GraphQLObject + { + /// + ///A group of global colors for customizing the overall look and feel of the user interface. + /// + public CheckoutBrandingColorGlobal? global { get; set; } + /// + ///A set of color schemes which apply to different areas of the user interface. + /// + public CheckoutBrandingColorSchemes? schemes { get; set; } + } + + /// + ///The form controls customizations. + /// + public class CheckoutBrandingControl : GraphQLObject + { + /// + ///The border used for form controls. + /// + public CheckoutBrandingSimpleBorder? border { get; set; } + /// + ///Set to TRANSPARENT to define transparent form controls. If null, form controls inherit colors from their scheme settings (for example, the main section inherits from `design_system.colors.schemes.scheme1.control` by default). Note that usage of the `customizations.control.color` setting to customize the form control color is deprecated. + /// + public CheckoutBrandingColorSelection? color { get; set; } + /// + ///The corner radius used for form controls. + /// + public CheckoutBrandingCornerRadius? cornerRadius { get; set; } + /// + ///The label position used for form controls. + /// + public CheckoutBrandingLabelPosition? labelPosition { get; set; } + } + + /// + ///Colors for form controls. + /// + public class CheckoutBrandingControlColorRoles : GraphQLObject + { + /// + ///The color of accented objects (links and focused state). + /// + public string? accent { get; set; } + /// + ///The color of the background. + /// + public string? background { get; set; } + /// + ///The color of borders. + /// + public string? border { get; set; } + /// + ///The decorative color for highlighting specific parts of the user interface. + /// + public string? decorative { get; set; } + /// + ///The color of icons. + /// + public string? icon { get; set; } + /// + ///The colors of selected controls. + /// + public CheckoutBrandingColorRoles? selected { get; set; } + /// + ///The color of text. + /// + public string? text { get; set; } + } + + /// + ///Possible values for the corner radius. + /// + public enum CheckoutBrandingCornerRadius + { + /// + ///The None corner radius. + /// + NONE, + /// + ///The Small corner radius. + /// + SMALL, + /// + ///The Base corner radius. + /// + BASE, + /// + ///The Large corner radius. + /// + LARGE, + } + + /// + ///The corner radius variables. + /// + public class CheckoutBrandingCornerRadiusVariables : GraphQLObject + { + /// + ///The pixel value for base corner radiuses. + /// + public int? @base { get; set; } + /// + ///The pixel value for large corner radiuses. + /// + public int? large { get; set; } + /// + ///The pixel value for small corner radiuses. + /// + public int? small { get; set; } + } + + /// + ///A custom font. + /// + public class CheckoutBrandingCustomFont : GraphQLObject, ICheckoutBrandingFont + { + /// + ///Globally unique ID reference to the custom font file. + /// + public string? genericFileId { get; set; } + /// + ///The font sources. + /// + public string? sources { get; set; } + /// + ///The font weight. + /// + public int? weight { get; set; } + } + + /// + ///The customizations that apply to specific components or areas of the user interface. + /// + public class CheckoutBrandingCustomizations : GraphQLObject + { + /// + ///The checkboxes customizations. + /// + public CheckoutBrandingCheckbox? checkbox { get; set; } + /// + ///The choice list customizations. + /// + public CheckoutBrandingChoiceList? choiceList { get; set; } + /// + ///The form controls customizations. + /// + public CheckoutBrandingControl? control { get; set; } + /// + ///The favicon image. + /// + public CheckoutBrandingImage? favicon { get; set; } + /// + ///The global customizations. + /// + public CheckoutBrandingGlobal? global { get; set; } + /// + ///The header customizations. + /// + public CheckoutBrandingHeader? header { get; set; } + /// + ///The Heading Level 1 customizations. + /// + public CheckoutBrandingHeadingLevel? headingLevel1 { get; set; } + /// + ///The Heading Level 2 customizations. + /// + public CheckoutBrandingHeadingLevel? headingLevel2 { get; set; } + /// + ///The Heading Level 3 customizations. + /// + public CheckoutBrandingHeadingLevel? headingLevel3 { get; set; } + /// + ///The main area customizations. + /// + public CheckoutBrandingMain? main { get; set; } + /// + ///The merchandise thumbnails customizations. + /// + public CheckoutBrandingMerchandiseThumbnail? merchandiseThumbnail { get; set; } + /// + ///The order summary customizations. + /// + public CheckoutBrandingOrderSummary? orderSummary { get; set; } + /// + ///The primary buttons customizations. + /// + public CheckoutBrandingButton? primaryButton { get; set; } + /// + ///The secondary buttons customizations. + /// + public CheckoutBrandingButton? secondaryButton { get; set; } + /// + ///The selects customizations. + /// + public CheckoutBrandingSelect? select { get; set; } + /// + ///The text fields customizations. + /// + public CheckoutBrandingTextField? textField { get; set; } + } + + /// + ///The design system allows you to set values that represent specific attributes + ///of your brand like color and font. These attributes are used throughout the user + ///interface. This brings consistency and allows you to easily make broad design changes. + /// + public class CheckoutBrandingDesignSystem : GraphQLObject + { + /// + ///The color settings for global colors and color schemes. + /// + public CheckoutBrandingColors? colors { get; set; } + /// + ///The corner radius variables. + /// + public CheckoutBrandingCornerRadiusVariables? cornerRadius { get; set; } + /// + ///The typography. + /// + public CheckoutBrandingTypography? typography { get; set; } + } + + /// + ///A font. + /// + [JsonPolymorphic(TypeDiscriminatorPropertyName = "__typename")] + [JsonDerivedType(typeof(CheckoutBrandingCustomFont), typeDiscriminator: "CheckoutBrandingCustomFont")] + [JsonDerivedType(typeof(CheckoutBrandingShopifyFont), typeDiscriminator: "CheckoutBrandingShopifyFont")] + public interface ICheckoutBrandingFont : IGraphQLObject + { + public CheckoutBrandingCustomFont? AsCheckoutBrandingCustomFont() => this as CheckoutBrandingCustomFont; + public CheckoutBrandingShopifyFont? AsCheckoutBrandingShopifyFont() => this as CheckoutBrandingShopifyFont; + /// + ///The font sources. + /// + public string? sources { get; } + /// + ///The font weight. + /// + public int? weight { get; } + } + + /// + ///A font group. + /// + public class CheckoutBrandingFontGroup : GraphQLObject + { + /// + ///The base font. + /// + public ICheckoutBrandingFont? @base { get; set; } + /// + ///The bold font. + /// + public ICheckoutBrandingFont? bold { get; set; } + /// + ///The font loading strategy. + /// + public CheckoutBrandingFontLoadingStrategy? loadingStrategy { get; set; } + /// + ///The font group name. + /// + public string? name { get; set; } + } + + /// + ///The font loading strategy determines how a font face is displayed after it is loaded or failed to load. + ///For more information: https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display. + /// + public enum CheckoutBrandingFontLoadingStrategy + { + /// + ///The font display strategy is defined by the browser user agent. + /// + AUTO, + /// + ///Gives the font face a short block period and an infinite swap period. + /// + BLOCK, + /// + ///Gives the font face an extremely small block period and an infinite swap period. + /// + SWAP, + /// + ///Gives the font face an extremely small block period and a short swap period. + /// + FALLBACK, + /// + ///Gives the font face an extremely small block period and no swap period. + /// + OPTIONAL, + } + + /// + ///The font size. + /// + public class CheckoutBrandingFontSize : GraphQLObject + { + /// + ///The base font size. + /// + public float? @base { get; set; } + /// + ///The scale ratio used to derive all font sizes such as small and large. + /// + public float? ratio { get; set; } + } + + /// + ///The global customizations. + /// + public class CheckoutBrandingGlobal : GraphQLObject + { + /// + ///The global corner radius. + /// + public CheckoutBrandingGlobalCornerRadius? cornerRadius { get; set; } + /// + ///The global typography customizations. + /// + public CheckoutBrandingTypographyStyleGlobal? typography { get; set; } + } + + /// + ///Possible values for the corner radius. + /// + public enum CheckoutBrandingGlobalCornerRadius + { + /// + ///The None corner radius. + /// + NONE, + } + + /// + ///The header customizations. + /// + public class CheckoutBrandingHeader : GraphQLObject + { + /// + ///The header alignment. + /// + public CheckoutBrandingHeaderAlignment? alignment { get; set; } + /// + ///The background image of the header. + /// + public CheckoutBrandingImage? banner { get; set; } + /// + ///The store logo. + /// + public CheckoutBrandingLogo? logo { get; set; } + /// + ///The header position. + /// + public CheckoutBrandingHeaderPosition? position { get; set; } + } + + /// + ///The possible header alignments. + /// + public enum CheckoutBrandingHeaderAlignment + { + /// + ///Start alignment. + /// + START, + /// + ///Center alignment. + /// + CENTER, + /// + ///End alignment. + /// + END, + } + + /// + ///The possible header positions. + /// + public enum CheckoutBrandingHeaderPosition + { + /// + ///Inline position. + /// + INLINE, + /// + ///Secondary inline position. + /// + INLINE_SECONDARY, + /// + ///Start position. + /// + START, + } + + /// + ///The heading level customizations. + /// + public class CheckoutBrandingHeadingLevel : GraphQLObject + { + /// + ///The typography customizations used for headings. + /// + public CheckoutBrandingTypographyStyle? typography { get; set; } + } + + /// + ///A checkout branding image. + /// + public class CheckoutBrandingImage : GraphQLObject + { + /// + ///The image details. + /// + public Image? image { get; set; } + } + + /// + ///Possible values for the label position. + /// + public enum CheckoutBrandingLabelPosition + { + /// + ///The Inside label position. + /// + INSIDE, + /// + ///The Outside label position. + /// + OUTSIDE, + } + + /// + ///The store logo customizations. + /// + public class CheckoutBrandingLogo : GraphQLObject + { + /// + ///The logo image. + /// + public Image? image { get; set; } + /// + ///The maximum width of the logo. + /// + public int? maxWidth { get; set; } + } + + /// + ///The main container customizations. + /// + public class CheckoutBrandingMain : GraphQLObject + { + /// + ///The background image of the main container. + /// + public CheckoutBrandingImage? backgroundImage { get; set; } + /// + ///The selected color scheme of the main container. + /// + public CheckoutBrandingColorSchemeSelection? colorScheme { get; set; } + } + + /// + ///The merchandise thumbnails customizations. + /// + public class CheckoutBrandingMerchandiseThumbnail : GraphQLObject + { + /// + ///The border used for merchandise thumbnails. + /// + public CheckoutBrandingSimpleBorder? border { get; set; } + /// + ///The corner radius used for merchandise thumbnails. + /// + public CheckoutBrandingCornerRadius? cornerRadius { get; set; } + } + + /// + ///The order summary customizations. + /// + public class CheckoutBrandingOrderSummary : GraphQLObject + { + /// + ///The background image of the order summary. + /// + public CheckoutBrandingImage? backgroundImage { get; set; } + /// + ///The selected color scheme. + /// + public CheckoutBrandingColorSchemeSelection? colorScheme { get; set; } + } + + /// + ///The selects customizations. + /// + public class CheckoutBrandingSelect : GraphQLObject + { + /// + ///The border used for selects. + /// + public CheckoutBrandingBorder? border { get; set; } + /// + ///The typography customizations used for selects. + /// + public CheckoutBrandingTypographyStyle? typography { get; set; } + } + + /// + ///A Shopify font. + /// + public class CheckoutBrandingShopifyFont : GraphQLObject, ICheckoutBrandingFont + { + /// + ///The font sources. + /// + public string? sources { get; set; } + /// + ///The font weight. + /// + public int? weight { get; set; } + } + + /// + ///Possible values for the simple border. + /// + public enum CheckoutBrandingSimpleBorder + { + /// + ///The None simple border. + /// + NONE, + /// + ///The Full simple border. + /// + FULL, + } + + /// + ///Possible values for the spacing. + /// + public enum CheckoutBrandingSpacing + { + /// + ///The None spacing. + /// + NONE, + /// + ///The Extra Tight spacing. + /// + EXTRA_TIGHT, + /// + ///The Tight spacing. + /// + TIGHT, + /// + ///The Base spacing. + /// + BASE, + /// + ///The Loose spacing. + /// + LOOSE, + /// + ///The Extra Loose spacing. + /// + EXTRA_LOOSE, + } + + /// + ///The spacing between UI elements. + /// + public enum CheckoutBrandingSpacingKeyword + { + /// + ///The None spacing. + /// + NONE, + /// + ///The Base spacing. + /// + BASE, + /// + ///The Small spacing. + /// + SMALL, + /// + ///The Small 100 spacing. + /// + SMALL_100, + /// + ///The Small 200 spacing. + /// + SMALL_200, + /// + ///The Small 300 spacing. + /// + SMALL_300, + /// + ///The Small 400 spacing. + /// + SMALL_400, + /// + ///The Small 500 spacing. + /// + SMALL_500, + /// + ///The Large spacing. + /// + LARGE, + /// + ///The Large 100 spacing. + /// + LARGE_100, + /// + ///The Large 200 spacing. + /// + LARGE_200, + /// + ///The Large 300 spacing. + /// + LARGE_300, + /// + ///The Large 400 spacing. + /// + LARGE_400, + /// + ///The Large 500 spacing. + /// + LARGE_500, + } + + /// + ///The text fields customizations. + /// + public class CheckoutBrandingTextField : GraphQLObject + { + /// + ///The border used for text fields. + /// + public CheckoutBrandingBorder? border { get; set; } + /// + ///The typography customizations used for text fields. + /// + public CheckoutBrandingTypographyStyle? typography { get; set; } + } + + /// + ///The typography settings. + /// + public class CheckoutBrandingTypography : GraphQLObject + { + /// + ///A font group used for most components such as text, buttons and form controls. + /// + public CheckoutBrandingFontGroup? primary { get; set; } + /// + ///A font group used for heading components by default. + /// + public CheckoutBrandingFontGroup? secondary { get; set; } + /// + ///The font size. + /// + public CheckoutBrandingFontSize? size { get; set; } + } + + /// + ///The font selection. + /// + public enum CheckoutBrandingTypographyFont + { + /// + ///The primary font. + /// + PRIMARY, + /// + ///The secondary font. + /// + SECONDARY, + } + + /// + ///Possible values for the typography kerning. + /// + public enum CheckoutBrandingTypographyKerning + { + /// + ///Base or default kerning. + /// + BASE, + /// + ///Loose kerning, leaving more space than the default in between characters. + /// + LOOSE, + /// + ///Extra loose kerning, leaving even more space in between characters. + /// + EXTRA_LOOSE, + } + + /// + ///Possible values for the typography letter case. + /// + public enum CheckoutBrandingTypographyLetterCase + { + /// + ///All letters are is lower case. + /// + LOWER, + /// + ///No letter casing applied. + /// + NONE, + /// + ///Capitalize the first letter of each word. + /// + TITLE, + /// + ///All letters are uppercase. + /// + UPPER, + } + + /// + ///Possible values for the font size. + /// + public enum CheckoutBrandingTypographySize + { + /// + ///The extra small font size. + /// + EXTRA_SMALL, + /// + ///The small font size. + /// + SMALL, + /// + ///The base font size. + /// + BASE, + /// + ///The medium font size. + /// + MEDIUM, + /// + ///The large font size. + /// + LARGE, + /// + ///The extra large font size. + /// + EXTRA_LARGE, + /// + ///The extra extra large font size. + /// + EXTRA_EXTRA_LARGE, + } + + /// + ///The typography customizations. + /// + public class CheckoutBrandingTypographyStyle : GraphQLObject + { + /// + ///The font. + /// + public CheckoutBrandingTypographyFont? font { get; set; } + /// + ///The kerning. + /// + public CheckoutBrandingTypographyKerning? kerning { get; set; } + /// + ///The letter case. + /// + public CheckoutBrandingTypographyLetterCase? letterCase { get; set; } + /// + ///The font size. + /// + public CheckoutBrandingTypographySize? size { get; set; } + /// + ///The font weight. + /// + public CheckoutBrandingTypographyWeight? weight { get; set; } + } + + /// + ///The global typography customizations. + /// + public class CheckoutBrandingTypographyStyleGlobal : GraphQLObject + { + /// + ///The kerning. + /// + public CheckoutBrandingTypographyKerning? kerning { get; set; } + /// + ///The letter case. + /// + public CheckoutBrandingTypographyLetterCase? letterCase { get; set; } + } + + /// + ///Possible values for the font weight. + /// + public enum CheckoutBrandingTypographyWeight + { + /// + ///The base weight. + /// + BASE, + /// + ///The bold weight. + /// + BOLD, + } + + /// + ///Return type for `checkoutBrandingUpsert` mutation. + /// + public class CheckoutBrandingUpsertPayload : GraphQLObject + { + /// + ///Returns the new checkout branding settings. + /// + public CheckoutBranding? checkoutBranding { get; set; } + /// + ///The list of errors that occurred from executing the mutation. + /// + public IEnumerable? userErrors { get; set; } + } + + /// + ///An error that occurs during the execution of `CheckoutBrandingUpsert`. + /// + public class CheckoutBrandingUpsertUserError : GraphQLObject, IDisplayableError + { + /// + ///The error code. + /// + public CheckoutBrandingUpsertUserErrorCode? code { get; set; } + /// + ///The path to the input field that caused the error. + /// + public IEnumerable? field { get; set; } + /// + ///The error message. + /// + public string? message { get; set; } + } + + /// + ///Possible error codes that can be returned by `CheckoutBrandingUpsertUserError`. + /// + public enum CheckoutBrandingUpsertUserErrorCode + { + /// + ///Unexpected internal error happened. + /// + INTERNAL_ERROR, + } + /// ///A checkout profile defines the branding settings and the UI extensions for a store's checkout. A checkout profile could be published or draft. A store might have at most one published checkout profile, which is used to render their live checkout. The store could also have multiple draft profiles that were created, previewed, and published using the admin checkout editor. /// @@ -5286,6 +6575,10 @@ public class CompanyAddress : GraphQLObject, INode /// public DateTime? createdAt { get; set; } /// + ///The first name of the recipient. + /// + public string? firstName { get; set; } + /// ///The formatted version of the address. /// public IEnumerable? formattedAddress { get; set; } @@ -5298,6 +6591,10 @@ public class CompanyAddress : GraphQLObject, INode /// public string? id { get; set; } /// + ///The last name of the recipient. + /// + public string? lastName { get; set; } + /// ///A unique phone number for the customer. ///Formatted using E.164 standard. For example, _+16135551111_. /// @@ -7302,7 +8599,7 @@ public enum CountryCode /// TN, /// - ///Turkey. + ///Türkiye. /// TR, /// @@ -8210,17 +9507,6 @@ public class CurrencySettingEdge : GraphQLObject, IEdge public class Customer : GraphQLObject, ICommentEventSubject, IHasEvents, IHasMetafieldDefinitions, IHasMetafields, ILegacyInteroperability, INode, ICommentEventEmbed, IMetafieldReferencer, IPurchasingEntity { - /// - ///Whether the customer has agreed to receive marketing material. - /// - [Obsolete("Use `emailMarketingConsent` instead.")] - public bool? acceptsMarketing { get; set; } - - /// - ///The date and time when the customer consented or objected to receiving marketing material by email. - /// - [Obsolete("Use `emailMarketingConsent` instead.")] - public DateTime? acceptsMarketingUpdatedAt { get; set; } /// ///A list of addresses associated with the customer. /// @@ -8229,18 +9515,6 @@ public class Customer : GraphQLObject, ICommentEventSubject, IHasEvent ///The total amount that the customer has spent on orders in their lifetime. /// public MoneyV2? amountSpent { get; set; } - - /// - ///The average amount that the customer spent per order. - /// - [Obsolete("This field is no longer supported.")] - public decimal? averageOrderAmount { get; set; } - - /// - ///The average amount that the customer spent per order. - /// - [Obsolete("This field is no longer supported.")] - public MoneyV2? averageOrderAmountV2 { get; set; } /// ///Whether the merchant can delete the customer from their store. /// @@ -8322,15 +9596,6 @@ public class Customer : GraphQLObject, ICommentEventSubject, IHasEvent ///The market that includes the customer’s default address. /// public Market? market { get; set; } - - /// - ///The marketing subscription opt-in level, as described by the M3AAWG best practices guidelines, that the - ///customer gave when they consented to receive marketing material by email. - /// - ///If the customer doesn't accept email marketing, then this property is `null`. - /// - [Obsolete("Use `emailMarketingConsent` instead.")] - public CustomerMarketingOptInLevel? marketingOptInLevel { get; set; } /// ///Whether the customer can be merged with another customer. /// @@ -8439,6 +9704,44 @@ public class Customer : GraphQLObject, ICommentEventSubject, IHasEvent public bool? verifiedEmail { get; set; } } + /// + ///Information about the shop's customer accounts. + /// + public class CustomerAccountsV2 : GraphQLObject + { + /// + ///Indicates which version of customer accounts the merchant is using in online store and checkout. + /// + public CustomerAccountsVersion? customerAccountsVersion { get; set; } + /// + ///Login links are shown in online store and checkout. + /// + public bool? loginLinksVisibleOnStorefrontAndCheckout { get; set; } + /// + ///Customers are required to log in to their account before checkout. + /// + public bool? loginRequiredAtCheckout { get; set; } + /// + ///The root url for the customer accounts pages. + /// + public string? url { get; set; } + } + + /// + ///The login redirection target for customer accounts. + /// + public enum CustomerAccountsVersion + { + /// + ///The customer is redirected to the classic customer accounts login page. + /// + CLASSIC, + /// + ///The customer is redirected to the new customer accounts login page. + /// + NEW_CUSTOMER_ACCOUNTS, + } + /// ///Return type for `customerAddTaxExemptions` mutation. /// @@ -8454,6 +9757,59 @@ public class CustomerAddTaxExemptionsPayload : GraphQLObject? userErrors { get; set; } } + /// + ///Possible error codes that can be returned by `CustomerCancelDataErasureUserError`. + /// + public enum CustomerCancelDataErasureErrorCode + { + /// + ///Customer does not exist. + /// + DOES_NOT_EXIST, + /// + ///Failed to cancel customer data erasure. + /// + FAILED_TO_CANCEL, + /// + ///Customer's data is not scheduled for erasure. + /// + NOT_BEING_ERASED, + } + + /// + ///Return type for `customerCancelDataErasure` mutation. + /// + public class CustomerCancelDataErasurePayload : GraphQLObject + { + /// + ///The ID of the customer whose pending data erasure has been cancelled. + /// + public string? customerId { get; set; } + /// + ///The list of errors that occurred from executing the mutation. + /// + public IEnumerable? userErrors { get; set; } + } + + /// + ///An error that occurs when cancelling a customer data erasure request. + /// + public class CustomerCancelDataErasureUserError : GraphQLObject, IDisplayableError + { + /// + ///The error code. + /// + public CustomerCancelDataErasureErrorCode? code { get; set; } + /// + ///The path to the input field that caused the error. + /// + public IEnumerable? field { get; set; } + /// + ///The error message. + /// + public string? message { get; set; } + } + /// ///An auto-generated type for paginating through multiple Customers. /// @@ -9485,6 +10841,10 @@ public class CustomerPaymentMethodCreditCardCreatePayload : GraphQLObject public CustomerPaymentMethod? customerPaymentMethod { get; set; } /// + ///If the card verification result is processing. When this is true, customer_payment_method will be null. + /// + public bool? processing { get; set; } + /// ///The list of errors that occurred from executing the mutation. /// public IEnumerable? userErrors { get; set; } @@ -9500,6 +10860,10 @@ public class CustomerPaymentMethodCreditCardUpdatePayload : GraphQLObject public CustomerPaymentMethod? customerPaymentMethod { get; set; } /// + ///If the card verification result is processing. When this is true, customer_payment_method will be null. + /// + public bool? processing { get; set; } + /// ///The list of errors that occurred from executing the mutation. /// public IEnumerable? userErrors { get; set; } @@ -10005,6 +11369,55 @@ public class CustomerReplaceTaxExemptionsPayload : GraphQLObject? userErrors { get; set; } } + /// + ///Possible error codes that can be returned by `CustomerRequestDataErasureUserError`. + /// + public enum CustomerRequestDataErasureErrorCode + { + /// + ///Customer does not exist. + /// + DOES_NOT_EXIST, + /// + ///Failed to request customer data erasure. + /// + FAILED_TO_REQUEST, + } + + /// + ///Return type for `customerRequestDataErasure` mutation. + /// + public class CustomerRequestDataErasurePayload : GraphQLObject + { + /// + ///The ID of the customer that will be erased. + /// + public string? customerId { get; set; } + /// + ///The list of errors that occurred from executing the mutation. + /// + public IEnumerable? userErrors { get; set; } + } + + /// + ///An error that occurs when requesting a customer data erasure. + /// + public class CustomerRequestDataErasureUserError : GraphQLObject, IDisplayableError + { + /// + ///The error code. + /// + public CustomerRequestDataErasureErrorCode? code { get; set; } + /// + ///The path to the input field that caused the error. + /// + public IEnumerable? field { get; set; } + /// + ///The error message. + /// + public string? message { get; set; } + } + /// ///The set of valid sort keys for the CustomerSavedSearch query. /// @@ -11496,6 +12909,10 @@ public class DeliveryMethod : GraphQLObject, INode ///The earliest delivery date and time when the fulfillment is expected to arrive at the buyer's location. /// public DateTime? minDeliveryDateTime { get; set; } + /// + ///A reference to the shipping method. + /// + public string? serviceCode { get; set; } } /// @@ -12004,6 +13421,7 @@ public enum DigitalWallet [JsonDerivedType(typeof(DiscountAutomaticApp), typeDiscriminator: "DiscountAutomaticApp")] [JsonDerivedType(typeof(DiscountAutomaticBasic), typeDiscriminator: "DiscountAutomaticBasic")] [JsonDerivedType(typeof(DiscountAutomaticBxgy), typeDiscriminator: "DiscountAutomaticBxgy")] + [JsonDerivedType(typeof(DiscountAutomaticFreeShipping), typeDiscriminator: "DiscountAutomaticFreeShipping")] [JsonDerivedType(typeof(DiscountCodeApp), typeDiscriminator: "DiscountCodeApp")] [JsonDerivedType(typeof(DiscountCodeBasic), typeDiscriminator: "DiscountCodeBasic")] [JsonDerivedType(typeof(DiscountCodeBxgy), typeDiscriminator: "DiscountCodeBxgy")] @@ -12013,6 +13431,7 @@ public interface IDiscount : IGraphQLObject public DiscountAutomaticApp? AsDiscountAutomaticApp() => this as DiscountAutomaticApp; public DiscountAutomaticBasic? AsDiscountAutomaticBasic() => this as DiscountAutomaticBasic; public DiscountAutomaticBxgy? AsDiscountAutomaticBxgy() => this as DiscountAutomaticBxgy; + public DiscountAutomaticFreeShipping? AsDiscountAutomaticFreeShipping() => this as DiscountAutomaticFreeShipping; public DiscountCodeApp? AsDiscountCodeApp() => this as DiscountCodeApp; public DiscountCodeBasic? AsDiscountCodeBasic() => this as DiscountCodeBasic; public DiscountCodeBxgy? AsDiscountCodeBxgy() => this as DiscountCodeBxgy; @@ -12074,7 +13493,7 @@ public class DiscountAllocation : GraphQLObject /// ///The fixed amount value of a discount, and whether the amount is applied to each entitled item or spread evenly across the entitled items. /// - public class DiscountAmount : GraphQLObject, IDiscountCustomerGetsValue + public class DiscountAmount : GraphQLObject, IDiscountCustomerGetsValue, IDiscountEffect { /// ///The value of the discount. @@ -12241,11 +13660,13 @@ public enum DiscountApplicationTargetType [JsonDerivedType(typeof(DiscountAutomaticApp), typeDiscriminator: "DiscountAutomaticApp")] [JsonDerivedType(typeof(DiscountAutomaticBasic), typeDiscriminator: "DiscountAutomaticBasic")] [JsonDerivedType(typeof(DiscountAutomaticBxgy), typeDiscriminator: "DiscountAutomaticBxgy")] + [JsonDerivedType(typeof(DiscountAutomaticFreeShipping), typeDiscriminator: "DiscountAutomaticFreeShipping")] public interface IDiscountAutomatic : IGraphQLObject { public DiscountAutomaticApp? AsDiscountAutomaticApp() => this as DiscountAutomaticApp; public DiscountAutomaticBasic? AsDiscountAutomaticBasic() => this as DiscountAutomaticBasic; public DiscountAutomaticBxgy? AsDiscountAutomaticBxgy() => this as DiscountAutomaticBxgy; + public DiscountAutomaticFreeShipping? AsDiscountAutomaticFreeShipping() => this as DiscountAutomaticFreeShipping; /// ///The number of times the discount has been used. This value is updated asynchronously and can be different than the actual usage count. /// @@ -12414,6 +13835,10 @@ public class DiscountAutomaticBasic : GraphQLObject, IDi /// public IDiscountMinimumRequirement? minimumRequirement { get; set; } /// + ///The number of times a discount applies on recurring purchases (subscriptions). + /// + public int? recurringCycleLimit { get; set; } + /// ///A short summary of the discount. /// public string? shortSummary { get; set; } @@ -12659,6 +14084,119 @@ public class DiscountAutomaticEdge : GraphQLObject, IEdge public IDiscountAutomatic? node { get; set; } } + /// + ///An automatic discount that offers customers free shipping on their order. + /// + public class DiscountAutomaticFreeShipping : GraphQLObject, IDiscount, IDiscountAutomatic + { + /// + ///Whether the discount applies on regular one-time-purchase shipping lines. + /// + public bool? appliesOnOneTimePurchase { get; set; } + /// + ///Whether the discount applies on subscription shipping lines. + /// + public bool? appliesOnSubscription { get; set; } + /// + ///The number of times that the discount has been used. This value is updated asynchronously and can be different than the actual usage count. + /// + public int? asyncUsageCount { get; set; } + /// + ///Determines which discount classes the discount can combine with. + /// + public DiscountCombinesWith? combinesWith { get; set; } + /// + ///The date and time when the discount was created. + /// + public DateTime? createdAt { get; set; } + /// + ///A shipping destination that qualifies for the discount. + /// + public IDiscountShippingDestinationSelection? destinationSelection { get; set; } + /// + ///The class of the discount for combining purposes. + /// + public ShippingDiscountClass? discountClass { get; set; } + /// + ///The date and time when the discount ends. For open-ended discounts, use `null`. + /// + public DateTime? endsAt { get; set; } + /// + ///Indicates whether there are any timeline comments on the discount. + /// + public bool? hasTimelineComment { get; set; } + /// + ///The maximum shipping price amount accepted to qualify for the discount. + /// + public MoneyV2? maximumShippingPrice { get; set; } + /// + ///The minimum subtotal or quantity that's required for the discount to be applied. + /// + public IDiscountMinimumRequirement? minimumRequirement { get; set; } + /// + ///The number of times a discount applies on recurring purchases (subscriptions). + /// + public int? recurringCycleLimit { get; set; } + /// + ///A short summary of the discount. + /// + public string? shortSummary { get; set; } + /// + ///The date and time when the discount starts. + /// + public DateTime? startsAt { get; set; } + /// + ///The status of the discount. + /// + public DiscountStatus? status { get; set; } + /// + ///A detailed summary of the discount. + /// + public string? summary { get; set; } + /// + ///The title of the discount. + /// + public string? title { get; set; } + /// + ///The total sales from orders where the discount was used. + /// + public MoneyV2? totalSales { get; set; } + /// + ///The date and time when the discount was updated. + /// + public DateTime? updatedAt { get; set; } + } + + /// + ///Return type for `discountAutomaticFreeShippingCreate` mutation. + /// + public class DiscountAutomaticFreeShippingCreatePayload : GraphQLObject + { + /// + ///The created automatic discount. + /// + public DiscountAutomaticNode? automaticDiscountNode { get; set; } + /// + ///The list of errors that occurred from executing the mutation. + /// + public IEnumerable? userErrors { get; set; } + } + + /// + ///Return type for `discountAutomaticFreeShippingUpdate` mutation. + /// + public class DiscountAutomaticFreeShippingUpdatePayload : GraphQLObject + { + /// + ///The updated automatic discount. + /// + public DiscountAutomaticNode? automaticDiscountNode { get; set; } + /// + ///The list of errors that occurred from executing the mutation. + /// + public IEnumerable? userErrors { get; set; } + } + /// ///A node containing an automatic discount and its related events. /// @@ -13751,14 +15289,12 @@ public class DiscountCustomers : GraphQLObject, IDiscountCust ///The type of discount that will be applied. Currently, only a percentage discount is supported. /// [JsonPolymorphic(TypeDiscriminatorPropertyName = "__typename")] + [JsonDerivedType(typeof(DiscountAmount), typeDiscriminator: "DiscountAmount")] [JsonDerivedType(typeof(DiscountPercentage), typeDiscriminator: "DiscountPercentage")] public interface IDiscountEffect : IGraphQLObject { + public DiscountAmount? AsDiscountAmount() => this as DiscountAmount; public DiscountPercentage? AsDiscountPercentage() => this as DiscountPercentage; - /// - ///The percentage value of the discount. - /// - public float? percentage { get; set; } } /// @@ -14359,6 +15895,10 @@ public enum DiscountType ///Code discount type. /// CODE_DISCOUNT, + /// + ///Automatic discount type. + /// + AUTOMATIC_DISCOUNT, } /// @@ -14390,8 +15930,6 @@ public class DiscountUserError : GraphQLObject, IDisplayableE [JsonPolymorphic(TypeDiscriminatorPropertyName = "__typename")] [JsonDerivedType(typeof(AbandonmentEmailStateUpdateUserError), typeDiscriminator: "AbandonmentEmailStateUpdateUserError")] [JsonDerivedType(typeof(AbandonmentUpdateActivitiesDeliveryStatusesUserError), typeDiscriminator: "AbandonmentUpdateActivitiesDeliveryStatusesUserError")] - [JsonDerivedType(typeof(AppRevenueAttributionRecordCreateUserError), typeDiscriminator: "AppRevenueAttributionRecordCreateUserError")] - [JsonDerivedType(typeof(AppRevenueAttributionRecordDeleteUserError), typeDiscriminator: "AppRevenueAttributionRecordDeleteUserError")] [JsonDerivedType(typeof(AppSubscriptionTrialExtendUserError), typeDiscriminator: "AppSubscriptionTrialExtendUserError")] [JsonDerivedType(typeof(BillingAttemptUserError), typeDiscriminator: "BillingAttemptUserError")] [JsonDerivedType(typeof(BulkMutationUserError), typeDiscriminator: "BulkMutationUserError")] @@ -14400,7 +15938,9 @@ public class DiscountUserError : GraphQLObject, IDisplayableE [JsonDerivedType(typeof(CartTransformCreateUserError), typeDiscriminator: "CartTransformCreateUserError")] [JsonDerivedType(typeof(CartTransformDeleteUserError), typeDiscriminator: "CartTransformDeleteUserError")] [JsonDerivedType(typeof(CatalogUserError), typeDiscriminator: "CatalogUserError")] + [JsonDerivedType(typeof(CheckoutBrandingUpsertUserError), typeDiscriminator: "CheckoutBrandingUpsertUserError")] [JsonDerivedType(typeof(CollectionAddProductsV2UserError), typeDiscriminator: "CollectionAddProductsV2UserError")] + [JsonDerivedType(typeof(CustomerCancelDataErasureUserError), typeDiscriminator: "CustomerCancelDataErasureUserError")] [JsonDerivedType(typeof(CustomerEmailMarketingConsentUpdateUserError), typeDiscriminator: "CustomerEmailMarketingConsentUpdateUserError")] [JsonDerivedType(typeof(CustomerMergeUserError), typeDiscriminator: "CustomerMergeUserError")] [JsonDerivedType(typeof(CustomerPaymentMethodCreateFromDuplicationDataUserError), typeDiscriminator: "CustomerPaymentMethodCreateFromDuplicationDataUserError")] @@ -14408,6 +15948,7 @@ public class DiscountUserError : GraphQLObject, IDisplayableE [JsonDerivedType(typeof(CustomerPaymentMethodGetUpdateUrlUserError), typeDiscriminator: "CustomerPaymentMethodGetUpdateUrlUserError")] [JsonDerivedType(typeof(CustomerPaymentMethodRemoteUserError), typeDiscriminator: "CustomerPaymentMethodRemoteUserError")] [JsonDerivedType(typeof(CustomerPaymentMethodUserError), typeDiscriminator: "CustomerPaymentMethodUserError")] + [JsonDerivedType(typeof(CustomerRequestDataErasureUserError), typeDiscriminator: "CustomerRequestDataErasureUserError")] [JsonDerivedType(typeof(CustomerSegmentMembersQueryUserError), typeDiscriminator: "CustomerSegmentMembersQueryUserError")] [JsonDerivedType(typeof(CustomerSmsMarketingConsentError), typeDiscriminator: "CustomerSmsMarketingConsentError")] [JsonDerivedType(typeof(DelegateAccessTokenCreateUserError), typeDiscriminator: "DelegateAccessTokenCreateUserError")] @@ -14419,6 +15960,8 @@ public class DiscountUserError : GraphQLObject, IDisplayableE [JsonDerivedType(typeof(ErrorsServerPixelUserError), typeDiscriminator: "ErrorsServerPixelUserError")] [JsonDerivedType(typeof(ErrorsWebPixelUserError), typeDiscriminator: "ErrorsWebPixelUserError")] [JsonDerivedType(typeof(FilesUserError), typeDiscriminator: "FilesUserError")] + [JsonDerivedType(typeof(FulfillmentConstraintRuleCreateUserError), typeDiscriminator: "FulfillmentConstraintRuleCreateUserError")] + [JsonDerivedType(typeof(FulfillmentConstraintRuleDeleteUserError), typeDiscriminator: "FulfillmentConstraintRuleDeleteUserError")] [JsonDerivedType(typeof(FulfillmentOrderHoldUserError), typeDiscriminator: "FulfillmentOrderHoldUserError")] [JsonDerivedType(typeof(FulfillmentOrderLineItemsPreparedForPickupUserError), typeDiscriminator: "FulfillmentOrderLineItemsPreparedForPickupUserError")] [JsonDerivedType(typeof(FulfillmentOrderMergeUserError), typeDiscriminator: "FulfillmentOrderMergeUserError")] @@ -14432,6 +15975,7 @@ public class DiscountUserError : GraphQLObject, IDisplayableE [JsonDerivedType(typeof(InventoryBulkToggleActivationUserError), typeDiscriminator: "InventoryBulkToggleActivationUserError")] [JsonDerivedType(typeof(InventoryMoveQuantitiesUserError), typeDiscriminator: "InventoryMoveQuantitiesUserError")] [JsonDerivedType(typeof(InventorySetOnHandQuantitiesUserError), typeDiscriminator: "InventorySetOnHandQuantitiesUserError")] + [JsonDerivedType(typeof(InventorySetScheduledChangesUserError), typeDiscriminator: "InventorySetScheduledChangesUserError")] [JsonDerivedType(typeof(LocationActivateUserError), typeDiscriminator: "LocationActivateUserError")] [JsonDerivedType(typeof(LocationAddUserError), typeDiscriminator: "LocationAddUserError")] [JsonDerivedType(typeof(LocationDeactivateUserError), typeDiscriminator: "LocationDeactivateUserError")] @@ -14448,7 +15992,10 @@ public class DiscountUserError : GraphQLObject, IDisplayableE [JsonDerivedType(typeof(MetafieldDefinitionUpdateUserError), typeDiscriminator: "MetafieldDefinitionUpdateUserError")] [JsonDerivedType(typeof(MetafieldsSetUserError), typeDiscriminator: "MetafieldsSetUserError")] [JsonDerivedType(typeof(MetaobjectUserError), typeDiscriminator: "MetaobjectUserError")] + [JsonDerivedType(typeof(OrderCancelUserError), typeDiscriminator: "OrderCancelUserError")] [JsonDerivedType(typeof(OrderCreateMandatePaymentUserError), typeDiscriminator: "OrderCreateMandatePaymentUserError")] + [JsonDerivedType(typeof(OrderEditRemoveDiscountUserError), typeDiscriminator: "OrderEditRemoveDiscountUserError")] + [JsonDerivedType(typeof(OrderEditUpdateDiscountUserError), typeDiscriminator: "OrderEditUpdateDiscountUserError")] [JsonDerivedType(typeof(OrderInvoiceSendUserError), typeDiscriminator: "OrderInvoiceSendUserError")] [JsonDerivedType(typeof(PaymentCustomizationError), typeDiscriminator: "PaymentCustomizationError")] [JsonDerivedType(typeof(PaymentReminderSendUserError), typeDiscriminator: "PaymentReminderSendUserError")] @@ -14474,13 +16021,17 @@ public class DiscountUserError : GraphQLObject, IDisplayableE [JsonDerivedType(typeof(PubSubWebhookSubscriptionCreateUserError), typeDiscriminator: "PubSubWebhookSubscriptionCreateUserError")] [JsonDerivedType(typeof(PubSubWebhookSubscriptionUpdateUserError), typeDiscriminator: "PubSubWebhookSubscriptionUpdateUserError")] [JsonDerivedType(typeof(PublicationUserError), typeDiscriminator: "PublicationUserError")] + [JsonDerivedType(typeof(QuantityPricingByVariantUserError), typeDiscriminator: "QuantityPricingByVariantUserError")] [JsonDerivedType(typeof(QuantityRuleUserError), typeDiscriminator: "QuantityRuleUserError")] [JsonDerivedType(typeof(ReturnUserError), typeDiscriminator: "ReturnUserError")] [JsonDerivedType(typeof(SellingPlanGroupUserError), typeDiscriminator: "SellingPlanGroupUserError")] [JsonDerivedType(typeof(ShopPolicyUserError), typeDiscriminator: "ShopPolicyUserError")] [JsonDerivedType(typeof(ShopResourceFeedbackCreateUserError), typeDiscriminator: "ShopResourceFeedbackCreateUserError")] [JsonDerivedType(typeof(StandardMetafieldDefinitionEnableUserError), typeDiscriminator: "StandardMetafieldDefinitionEnableUserError")] + [JsonDerivedType(typeof(SubscriptionBillingCycleSkipUserError), typeDiscriminator: "SubscriptionBillingCycleSkipUserError")] + [JsonDerivedType(typeof(SubscriptionBillingCycleUnskipUserError), typeDiscriminator: "SubscriptionBillingCycleUnskipUserError")] [JsonDerivedType(typeof(SubscriptionBillingCycleUserError), typeDiscriminator: "SubscriptionBillingCycleUserError")] + [JsonDerivedType(typeof(SubscriptionContractStatusUpdateUserError), typeDiscriminator: "SubscriptionContractStatusUpdateUserError")] [JsonDerivedType(typeof(SubscriptionContractUserError), typeDiscriminator: "SubscriptionContractUserError")] [JsonDerivedType(typeof(SubscriptionDraftUserError), typeDiscriminator: "SubscriptionDraftUserError")] [JsonDerivedType(typeof(TaxAppConfigureUserError), typeDiscriminator: "TaxAppConfigureUserError")] @@ -14491,12 +16042,11 @@ public class DiscountUserError : GraphQLObject, IDisplayableE [JsonDerivedType(typeof(UrlRedirectImportUserError), typeDiscriminator: "UrlRedirectImportUserError")] [JsonDerivedType(typeof(UrlRedirectUserError), typeDiscriminator: "UrlRedirectUserError")] [JsonDerivedType(typeof(UserError), typeDiscriminator: "UserError")] + [JsonDerivedType(typeof(ValidationUserError), typeDiscriminator: "ValidationUserError")] public interface IDisplayableError : IGraphQLObject { public AbandonmentEmailStateUpdateUserError? AsAbandonmentEmailStateUpdateUserError() => this as AbandonmentEmailStateUpdateUserError; public AbandonmentUpdateActivitiesDeliveryStatusesUserError? AsAbandonmentUpdateActivitiesDeliveryStatusesUserError() => this as AbandonmentUpdateActivitiesDeliveryStatusesUserError; - public AppRevenueAttributionRecordCreateUserError? AsAppRevenueAttributionRecordCreateUserError() => this as AppRevenueAttributionRecordCreateUserError; - public AppRevenueAttributionRecordDeleteUserError? AsAppRevenueAttributionRecordDeleteUserError() => this as AppRevenueAttributionRecordDeleteUserError; public AppSubscriptionTrialExtendUserError? AsAppSubscriptionTrialExtendUserError() => this as AppSubscriptionTrialExtendUserError; public BillingAttemptUserError? AsBillingAttemptUserError() => this as BillingAttemptUserError; public BulkMutationUserError? AsBulkMutationUserError() => this as BulkMutationUserError; @@ -14505,7 +16055,9 @@ public interface IDisplayableError : IGraphQLObject public CartTransformCreateUserError? AsCartTransformCreateUserError() => this as CartTransformCreateUserError; public CartTransformDeleteUserError? AsCartTransformDeleteUserError() => this as CartTransformDeleteUserError; public CatalogUserError? AsCatalogUserError() => this as CatalogUserError; + public CheckoutBrandingUpsertUserError? AsCheckoutBrandingUpsertUserError() => this as CheckoutBrandingUpsertUserError; public CollectionAddProductsV2UserError? AsCollectionAddProductsV2UserError() => this as CollectionAddProductsV2UserError; + public CustomerCancelDataErasureUserError? AsCustomerCancelDataErasureUserError() => this as CustomerCancelDataErasureUserError; public CustomerEmailMarketingConsentUpdateUserError? AsCustomerEmailMarketingConsentUpdateUserError() => this as CustomerEmailMarketingConsentUpdateUserError; public CustomerMergeUserError? AsCustomerMergeUserError() => this as CustomerMergeUserError; public CustomerPaymentMethodCreateFromDuplicationDataUserError? AsCustomerPaymentMethodCreateFromDuplicationDataUserError() => this as CustomerPaymentMethodCreateFromDuplicationDataUserError; @@ -14513,6 +16065,7 @@ public interface IDisplayableError : IGraphQLObject public CustomerPaymentMethodGetUpdateUrlUserError? AsCustomerPaymentMethodGetUpdateUrlUserError() => this as CustomerPaymentMethodGetUpdateUrlUserError; public CustomerPaymentMethodRemoteUserError? AsCustomerPaymentMethodRemoteUserError() => this as CustomerPaymentMethodRemoteUserError; public CustomerPaymentMethodUserError? AsCustomerPaymentMethodUserError() => this as CustomerPaymentMethodUserError; + public CustomerRequestDataErasureUserError? AsCustomerRequestDataErasureUserError() => this as CustomerRequestDataErasureUserError; public CustomerSegmentMembersQueryUserError? AsCustomerSegmentMembersQueryUserError() => this as CustomerSegmentMembersQueryUserError; public CustomerSmsMarketingConsentError? AsCustomerSmsMarketingConsentError() => this as CustomerSmsMarketingConsentError; public DelegateAccessTokenCreateUserError? AsDelegateAccessTokenCreateUserError() => this as DelegateAccessTokenCreateUserError; @@ -14524,6 +16077,8 @@ public interface IDisplayableError : IGraphQLObject public ErrorsServerPixelUserError? AsErrorsServerPixelUserError() => this as ErrorsServerPixelUserError; public ErrorsWebPixelUserError? AsErrorsWebPixelUserError() => this as ErrorsWebPixelUserError; public FilesUserError? AsFilesUserError() => this as FilesUserError; + public FulfillmentConstraintRuleCreateUserError? AsFulfillmentConstraintRuleCreateUserError() => this as FulfillmentConstraintRuleCreateUserError; + public FulfillmentConstraintRuleDeleteUserError? AsFulfillmentConstraintRuleDeleteUserError() => this as FulfillmentConstraintRuleDeleteUserError; public FulfillmentOrderHoldUserError? AsFulfillmentOrderHoldUserError() => this as FulfillmentOrderHoldUserError; public FulfillmentOrderLineItemsPreparedForPickupUserError? AsFulfillmentOrderLineItemsPreparedForPickupUserError() => this as FulfillmentOrderLineItemsPreparedForPickupUserError; public FulfillmentOrderMergeUserError? AsFulfillmentOrderMergeUserError() => this as FulfillmentOrderMergeUserError; @@ -14537,6 +16092,7 @@ public interface IDisplayableError : IGraphQLObject public InventoryBulkToggleActivationUserError? AsInventoryBulkToggleActivationUserError() => this as InventoryBulkToggleActivationUserError; public InventoryMoveQuantitiesUserError? AsInventoryMoveQuantitiesUserError() => this as InventoryMoveQuantitiesUserError; public InventorySetOnHandQuantitiesUserError? AsInventorySetOnHandQuantitiesUserError() => this as InventorySetOnHandQuantitiesUserError; + public InventorySetScheduledChangesUserError? AsInventorySetScheduledChangesUserError() => this as InventorySetScheduledChangesUserError; public LocationActivateUserError? AsLocationActivateUserError() => this as LocationActivateUserError; public LocationAddUserError? AsLocationAddUserError() => this as LocationAddUserError; public LocationDeactivateUserError? AsLocationDeactivateUserError() => this as LocationDeactivateUserError; @@ -14553,7 +16109,10 @@ public interface IDisplayableError : IGraphQLObject public MetafieldDefinitionUpdateUserError? AsMetafieldDefinitionUpdateUserError() => this as MetafieldDefinitionUpdateUserError; public MetafieldsSetUserError? AsMetafieldsSetUserError() => this as MetafieldsSetUserError; public MetaobjectUserError? AsMetaobjectUserError() => this as MetaobjectUserError; + public OrderCancelUserError? AsOrderCancelUserError() => this as OrderCancelUserError; public OrderCreateMandatePaymentUserError? AsOrderCreateMandatePaymentUserError() => this as OrderCreateMandatePaymentUserError; + public OrderEditRemoveDiscountUserError? AsOrderEditRemoveDiscountUserError() => this as OrderEditRemoveDiscountUserError; + public OrderEditUpdateDiscountUserError? AsOrderEditUpdateDiscountUserError() => this as OrderEditUpdateDiscountUserError; public OrderInvoiceSendUserError? AsOrderInvoiceSendUserError() => this as OrderInvoiceSendUserError; public PaymentCustomizationError? AsPaymentCustomizationError() => this as PaymentCustomizationError; public PaymentReminderSendUserError? AsPaymentReminderSendUserError() => this as PaymentReminderSendUserError; @@ -14578,13 +16137,17 @@ public interface IDisplayableError : IGraphQLObject public PubSubWebhookSubscriptionCreateUserError? AsPubSubWebhookSubscriptionCreateUserError() => this as PubSubWebhookSubscriptionCreateUserError; public PubSubWebhookSubscriptionUpdateUserError? AsPubSubWebhookSubscriptionUpdateUserError() => this as PubSubWebhookSubscriptionUpdateUserError; public PublicationUserError? AsPublicationUserError() => this as PublicationUserError; + public QuantityPricingByVariantUserError? AsQuantityPricingByVariantUserError() => this as QuantityPricingByVariantUserError; public QuantityRuleUserError? AsQuantityRuleUserError() => this as QuantityRuleUserError; public ReturnUserError? AsReturnUserError() => this as ReturnUserError; public SellingPlanGroupUserError? AsSellingPlanGroupUserError() => this as SellingPlanGroupUserError; public ShopPolicyUserError? AsShopPolicyUserError() => this as ShopPolicyUserError; public ShopResourceFeedbackCreateUserError? AsShopResourceFeedbackCreateUserError() => this as ShopResourceFeedbackCreateUserError; public StandardMetafieldDefinitionEnableUserError? AsStandardMetafieldDefinitionEnableUserError() => this as StandardMetafieldDefinitionEnableUserError; + public SubscriptionBillingCycleSkipUserError? AsSubscriptionBillingCycleSkipUserError() => this as SubscriptionBillingCycleSkipUserError; + public SubscriptionBillingCycleUnskipUserError? AsSubscriptionBillingCycleUnskipUserError() => this as SubscriptionBillingCycleUnskipUserError; public SubscriptionBillingCycleUserError? AsSubscriptionBillingCycleUserError() => this as SubscriptionBillingCycleUserError; + public SubscriptionContractStatusUpdateUserError? AsSubscriptionContractStatusUpdateUserError() => this as SubscriptionContractStatusUpdateUserError; public SubscriptionContractUserError? AsSubscriptionContractUserError() => this as SubscriptionContractUserError; public SubscriptionDraftUserError? AsSubscriptionDraftUserError() => this as SubscriptionDraftUserError; public TaxAppConfigureUserError? AsTaxAppConfigureUserError() => this as TaxAppConfigureUserError; @@ -14595,6 +16158,7 @@ public interface IDisplayableError : IGraphQLObject public UrlRedirectImportUserError? AsUrlRedirectImportUserError() => this as UrlRedirectImportUserError; public UrlRedirectUserError? AsUrlRedirectUserError() => this as UrlRedirectUserError; public UserError? AsUserError() => this as UserError; + public ValidationUserError? AsValidationUserError() => this as ValidationUserError; /// ///The path to the input field that caused the error. /// @@ -16679,6 +18243,60 @@ public class FilterOption : GraphQLObject public string? value { get; set; } } + /// + ///An amount that's allocated to a line item based on an associated discount application. + /// + public class FinancialSummaryDiscountAllocation : GraphQLObject + { + /// + ///The money amount that's allocated per unit on the associated line based on the discount application in shop and presentment currencies. If the allocated amount for the line cannot be evenly divided by the quantity, then this amount will be an approximate amount, avoiding fractional pennies. For example, if the associated line had a quantity of 3 with a discount of 4 cents, then the discount distribution would be [0.01, 0.01, 0.02]. This field returns the highest number of the distribution. In this example, this would be 0.02. + /// + public MoneyBag? approximateAllocatedAmountPerItem { get; set; } + /// + ///The discount application that the allocated amount originated from. + /// + public FinancialSummaryDiscountApplication? discountApplication { get; set; } + } + + /// + ///Discount applications capture the intentions of a discount source at + ///the time of application on an order's line items or shipping lines. + /// + public class FinancialSummaryDiscountApplication : GraphQLObject + { + /// + ///The method by which the discount's value is applied to its entitled items. + /// + public DiscountApplicationAllocationMethod? allocationMethod { get; set; } + /// + ///How the discount amount is distributed on the discounted lines. + /// + public DiscountApplicationTargetSelection? targetSelection { get; set; } + /// + ///Whether the discount is applied on line items or shipping lines. + /// + public DiscountApplicationTargetType? targetType { get; set; } + } + + /// + ///Return type for `flowGenerateSignature` mutation. + /// + public class FlowGenerateSignaturePayload : GraphQLObject + { + /// + ///The payload used to generate the signature. + /// + public string? payload { get; set; } + /// + ///The generated signature. + /// + public string? signature { get; set; } + /// + ///The list of errors that occurred from executing the mutation. + /// + public IEnumerable? userErrors { get; set; } + } + /// ///Return type for `flowTriggerReceive` mutation. /// @@ -16816,6 +18434,155 @@ public class FulfillmentConnection : GraphQLObject, IConn public PageInfo? pageInfo { get; set; } } + /// + ///A fulfillment constraint rule. + /// + public class FulfillmentConstraintRule : GraphQLObject, IHasMetafields, INode + { + /// + ///The ID for the fulfillment constraint function. + /// + public ShopifyFunction? function { get; set; } + /// + ///A globally-unique ID. + /// + public string? id { get; set; } + /// + ///Returns a metafield by namespace and key that belongs to the resource. + /// + public Metafield? metafield { get; set; } + /// + ///List of metafields that belong to the resource. + /// + public MetafieldConnection? metafields { get; set; } + + /// + ///Returns a private metafield by namespace and key that belongs to the resource. + /// + [Obsolete("Metafields created using a reserved namespace are private by default. See our guide for\n[migrating private metafields](https://shopify.dev/docs/apps/custom-data/metafields/migrate-private-metafields).")] + public PrivateMetafield? privateMetafield { get; set; } + + /// + ///List of private metafields that belong to the resource. + /// + [Obsolete("Metafields created using a reserved namespace are private by default. See our guide for\n[migrating private metafields](https://shopify.dev/docs/apps/custom-data/metafields/migrate-private-metafields).")] + public PrivateMetafieldConnection? privateMetafields { get; set; } + } + + /// + ///Return type for `fulfillmentConstraintRuleCreate` mutation. + /// + public class FulfillmentConstraintRuleCreatePayload : GraphQLObject + { + /// + ///The newly created fulfillment constraint rule. + /// + public FulfillmentConstraintRule? fulfillmentConstraintRule { get; set; } + /// + ///The list of errors that occurred from executing the mutation. + /// + public IEnumerable? userErrors { get; set; } + } + + /// + ///An error that occurs during the execution of `FulfillmentConstraintRuleCreate`. + /// + public class FulfillmentConstraintRuleCreateUserError : GraphQLObject, IDisplayableError + { + /// + ///The error code. + /// + public FulfillmentConstraintRuleCreateUserErrorCode? code { get; set; } + /// + ///The path to the input field that caused the error. + /// + public IEnumerable? field { get; set; } + /// + ///The error message. + /// + public string? message { get; set; } + } + + /// + ///Possible error codes that can be returned by `FulfillmentConstraintRuleCreateUserError`. + /// + public enum FulfillmentConstraintRuleCreateUserErrorCode + { + /// + ///Failed to create fulfillment constraint rule due to invalid input. + /// + INPUT_INVALID, + /// + ///No Shopify Function found for provided function_id. + /// + FUNCTION_NOT_FOUND, + /// + ///A fulfillment constraint rule already exists for the provided function_id. + /// + FUNCTION_ALREADY_REGISTERED, + /// + ///Function does not implement the required interface for this fulfillment constraint rule. + /// + FUNCTION_DOES_NOT_IMPLEMENT, + /// + ///Shop must be on a Shopify Plus plan to activate functions from a custom app. + /// + CUSTOM_APP_FUNCTION_NOT_ELIGIBLE, + /// + ///Function is pending deletion and cannot have new rules created against it. + /// + FUNCTION_PENDING_DELETION, + } + + /// + ///Return type for `fulfillmentConstraintRuleDelete` mutation. + /// + public class FulfillmentConstraintRuleDeletePayload : GraphQLObject + { + /// + ///Whether or not the fulfillment constraint rule was successfully deleted. + /// + public bool? success { get; set; } + /// + ///The list of errors that occurred from executing the mutation. + /// + public IEnumerable? userErrors { get; set; } + } + + /// + ///An error that occurs during the execution of `FulfillmentConstraintRuleDelete`. + /// + public class FulfillmentConstraintRuleDeleteUserError : GraphQLObject, IDisplayableError + { + /// + ///The error code. + /// + public FulfillmentConstraintRuleDeleteUserErrorCode? code { get; set; } + /// + ///The path to the input field that caused the error. + /// + public IEnumerable? field { get; set; } + /// + ///The error message. + /// + public string? message { get; set; } + } + + /// + ///Possible error codes that can be returned by `FulfillmentConstraintRuleDeleteUserError`. + /// + public enum FulfillmentConstraintRuleDeleteUserErrorCode + { + /// + ///Could not find fulfillment constraint rule for provided id. + /// + NOT_FOUND, + /// + ///Unauthorized app scope. + /// + UNAUTHORIZED_APP_SCOPE, + } + /// ///Return type for `fulfillmentCreateV2` mutation. /// @@ -17133,6 +18900,10 @@ public enum FulfillmentHoldReason /// ONLINE_STORE_POST_PURCHASE_CROSS_SELL, /// + ///The fulfillment hold is applied because of return items not yet received during an exchange. + /// + AWAITING_RETURN_ITEMS, + /// ///The fulfillment hold is applied for another reason. /// OTHER, @@ -17393,6 +19164,10 @@ public class FulfillmentOrder : GraphQLObject, INode, IMetafie /// public FulfillmentOrderAssignedLocation? assignedLocation { get; set; } /// + ///ID of the channel that created the order. + /// + public string? channelId { get; set; } + /// ///Date and time when the fulfillment order was created. /// public DateTime? createdAt { get; set; } @@ -17417,6 +19192,10 @@ public class FulfillmentOrder : GraphQLObject, INode, IMetafie /// public IEnumerable? fulfillmentHolds { get; set; } /// + ///Fulfillment orders eligible for merging with the given fulfillment order. + /// + public FulfillmentOrderConnection? fulfillmentOrdersForMerge { get; set; } + /// ///A list of fulfillments for the fulfillment order. /// public FulfillmentConnection? fulfillments { get; set; } @@ -17445,6 +19224,21 @@ public class FulfillmentOrder : GraphQLObject, INode, IMetafie /// public Order? order { get; set; } /// + ///ID of the order that's associated with the fulfillment order. + /// + public string? orderId { get; set; } + /// + ///The unique identifier for the order that appears on the order page in the Shopify admin and the Order status page. + ///For example, "#1001", "EN1001", or "1001-A". + ///This value isn't unique across multiple stores. + /// + public string? orderName { get; set; } + /// + ///The date and time when the order was processed. + ///This date and time might not match the date and time when the order was created. + /// + public DateTime? orderProcessedAt { get; set; } + /// ///The request status of the fulfillment order. /// public FulfillmentOrderRequestStatus? requestStatus { get; set; } @@ -17844,6 +19638,10 @@ public class FulfillmentOrderInternationalDuties : GraphQLObject public class FulfillmentOrderLineItem : GraphQLObject, INode { + /// + ///The financial summary for the Fulfillment Order's Line Items. + /// + public IEnumerable? financialSummaries { get; set; } /// ///A globally-unique ID. /// @@ -17862,9 +19660,11 @@ public class FulfillmentOrderLineItem : GraphQLObject, /// [Obsolete(" As of API version 2023-01, this field has been deprecated. The order line item associated with a `FulfillmentOrderLineItem`\n shouldn't be used to determine what to fulfill. Use the `FulfillmentOrderLineItem` and `FulfillmentOrder` objects\n instead. An order `LineItem` represents a single line item on an order, but it doesn't represent what should be fulfilled.")] public LineItem? lineItem { get; set; } + /// ///The variant unit price without discounts applied, in shop and presentment currencies. /// + [Obsolete("Use `financialSummaries` instead.")] public MoneyBag? originalUnitPriceSet { get; set; } /// ///The title of the product. @@ -17938,6 +19738,29 @@ public class FulfillmentOrderLineItemEdge : GraphQLObject + ///The financial details of a fulfillment order line item. + /// + public class FulfillmentOrderLineItemFinancialSummary : GraphQLObject + { + /// + ///The approximate split price of a line item unit, in shop and presentment currencies. This value doesn't include discounts applied to the entire order.For the full picture of applied discounts, see discountAllocations. + /// + public MoneyBag? approximateDiscountedUnitPriceSet { get; set; } + /// + ///The discounts that have been allocated onto the line item by discount applications, not including order edits and refunds. + /// + public IEnumerable? discountAllocations { get; set; } + /// + ///The variant unit price without discounts applied, in shop and presentment currencies. + /// + public MoneyBag? originalUnitPriceSet { get; set; } + /// + ///Number of line items that this financial summary applies to. + /// + public int? quantity { get; set; } + } + /// ///A fulfillment order line item warning. For example, a warning about why a fulfillment request was rejected. /// @@ -18007,6 +19830,15 @@ public enum FulfillmentOrderLineItemsPreparedForPickupUserErrorCode /// public class FulfillmentOrderLocationForMove : GraphQLObject { + /// + ///Fulfillment order line items that can be moved from their current location to the given location. + /// + public FulfillmentOrderLineItemConnection? availableLineItems { get; set; } + /// + ///Total number of fulfillment order line items that can be moved from their current assigned location to the + ///given location. + /// + public ulong? availableLineItemsCount { get; set; } /// ///The location being considered as the fulfillment order's new assigned location. /// @@ -18020,6 +19852,15 @@ public class FulfillmentOrderLocationForMove : GraphQLObject public bool? movable { get; set; } + /// + ///Fulfillment order line items that cannot be moved from their current location to the given location. + /// + public FulfillmentOrderLineItemConnection? unavailableLineItems { get; set; } + /// + ///Total number of fulfillment order line items that can't be moved from their current assigned location to the + ///given location. + /// + public ulong? unavailableLineItemsCount { get; set; } } /// @@ -18415,7 +20256,12 @@ public enum FulfillmentOrderRequestStatus public class FulfillmentOrderReschedulePayload : GraphQLObject { /// - ///The fulfillment order that was rescheduled. + ///A fulfillment order with the rescheduled line items. + /// + ///Fulfillment orders may be merged if they have the same `fulfillAt` datetime. + /// + ///If the fulfillment order is merged then the resulting fulfillment order will be returned. + ///Otherwise the original fulfillment order will be returned with an updated `fulfillAt` datetime. /// public FulfillmentOrder? fulfillmentOrder { get; set; } /// @@ -18540,6 +20386,10 @@ public enum FulfillmentOrderSplitUserErrorCode ///The fulfillment order line item quantity is invalid. /// INVALID_LINE_ITEM_QUANTITY, + /// + ///The fulfillment order must have at least one line item input to split. + /// + NO_LINE_ITEMS_PROVIDED_TO_SPLIT, } /// @@ -19621,6 +21471,7 @@ public interface IHasLocalizationExtensions : IGraphQLObject [JsonDerivedType(typeof(PaymentCustomization), typeDiscriminator: "PaymentCustomization")] [JsonDerivedType(typeof(Product), typeDiscriminator: "Product")] [JsonDerivedType(typeof(ProductVariant), typeDiscriminator: "ProductVariant")] + [JsonDerivedType(typeof(Validation), typeDiscriminator: "Validation")] public interface IHasMetafieldDefinitions : IGraphQLObject { public Collection? AsCollection() => this as Collection; @@ -19637,6 +21488,7 @@ public interface IHasMetafieldDefinitions : IGraphQLObject public PaymentCustomization? AsPaymentCustomization() => this as PaymentCustomization; public Product? AsProduct() => this as Product; public ProductVariant? AsProductVariant() => this as ProductVariant; + public Validation? AsValidation() => this as Validation; /// ///List of metafield definitions. /// @@ -19659,6 +21511,7 @@ public interface IHasMetafieldDefinitions : IGraphQLObject [JsonDerivedType(typeof(DiscountCodeNode), typeDiscriminator: "DiscountCodeNode")] [JsonDerivedType(typeof(DiscountNode), typeDiscriminator: "DiscountNode")] [JsonDerivedType(typeof(DraftOrder), typeDiscriminator: "DraftOrder")] + [JsonDerivedType(typeof(FulfillmentConstraintRule), typeDiscriminator: "FulfillmentConstraintRule")] [JsonDerivedType(typeof(Image), typeDiscriminator: "Image")] [JsonDerivedType(typeof(Location), typeDiscriminator: "Location")] [JsonDerivedType(typeof(Market), typeDiscriminator: "Market")] @@ -19668,6 +21521,7 @@ public interface IHasMetafieldDefinitions : IGraphQLObject [JsonDerivedType(typeof(Product), typeDiscriminator: "Product")] [JsonDerivedType(typeof(ProductVariant), typeDiscriminator: "ProductVariant")] [JsonDerivedType(typeof(Shop), typeDiscriminator: "Shop")] + [JsonDerivedType(typeof(Validation), typeDiscriminator: "Validation")] public interface IHasMetafields : IGraphQLObject { public AppInstallation? AsAppInstallation() => this as AppInstallation; @@ -19682,6 +21536,7 @@ public interface IHasMetafields : IGraphQLObject public DiscountCodeNode? AsDiscountCodeNode() => this as DiscountCodeNode; public DiscountNode? AsDiscountNode() => this as DiscountNode; public DraftOrder? AsDraftOrder() => this as DraftOrder; + public FulfillmentConstraintRule? AsFulfillmentConstraintRule() => this as FulfillmentConstraintRule; public Image? AsImage() => this as Image; public Location? AsLocation() => this as Location; public Market? AsMarket() => this as Market; @@ -19691,6 +21546,7 @@ public interface IHasMetafields : IGraphQLObject public Product? AsProduct() => this as Product; public ProductVariant? AsProductVariant() => this as ProductVariant; public Shop? AsShop() => this as Shop; + public Validation? AsValidation() => this as Validation; /// ///Returns a metafield by namespace and key that belongs to the resource. /// @@ -20406,6 +22262,10 @@ public class InventoryLevel : GraphQLObject, INode /// public IEnumerable? quantities { get; set; } /// + ///Scheduled changes for the requested quantity names. + /// + public InventoryScheduledChangeConnection? scheduledChanges { get; set; } + /// ///The date and time when the inventory level was updated. /// public DateTime? updatedAt { get; set; } @@ -20568,8 +22428,12 @@ public class InventoryProperties : GraphQLObject /// ///Represents a quantity of an inventory item at a specific location, for a specific name. /// - public class InventoryQuantity : GraphQLObject + public class InventoryQuantity : GraphQLObject, INode { + /// + ///A globally-unique ID. + /// + public string? id { get; set; } /// ///The [name](https://shopify.dev/docs/apps/fulfillment/inventory-management-apps#inventory-states) ///that identifies the inventory quantity. @@ -20614,6 +22478,75 @@ public class InventoryQuantityName : GraphQLObject public string? name { get; set; } } + /// + ///Returns the scheduled changes to inventory states related to the ledger document. + /// + public class InventoryScheduledChange : GraphQLObject + { + /// + ///The date and time that the scheduled change is expected to happen. + /// + public DateTime? expectedAt { get; set; } + /// + ///The quantity + ///[name](https://shopify.dev/docs/apps/fulfillment/inventory-management-apps/quantities-states#move-inventory-quantities-between-states) + ///to transition from. + /// + public string? fromName { get; set; } + /// + ///The quantities of an inventory item that are related to a specific location. + /// + public InventoryLevel? inventoryLevel { get; set; } + /// + ///An active reference document associated with the inventory quantity. Must be a valid URI. + /// + public string? ledgerDocumentUri { get; set; } + /// + ///The quantity of the scheduled change associated with the ledger document in the `from_name` state. + /// + public int? quantity { get; set; } + /// + ///The quantity + ///[name](https://shopify.dev/docs/apps/fulfillment/inventory-management-apps/quantities-states#move-inventory-quantities-between-states) + ///to transition to. + /// + public string? toName { get; set; } + } + + /// + ///An auto-generated type for paginating through multiple InventoryScheduledChanges. + /// + public class InventoryScheduledChangeConnection : GraphQLObject, IConnectionWithNodesAndEdges + { + /// + ///A list of edges. + /// + public IEnumerable? edges { get; set; } + /// + ///A list of the nodes contained in InventoryScheduledChangeEdge. + /// + public IEnumerable? nodes { get; set; } + /// + ///Information to aid in pagination. + /// + public PageInfo? pageInfo { get; set; } + } + + /// + ///An auto-generated type which holds one InventoryScheduledChange and a cursor during pagination. + /// + public class InventoryScheduledChangeEdge : GraphQLObject, IEdge + { + /// + ///A cursor for use in pagination. + /// + public string? cursor { get; set; } + /// + ///The item at the end of InventoryScheduledChangeEdge. + /// + public InventoryScheduledChange? node { get; set; } + } + /// ///Return type for `inventorySetOnHandQuantities` mutation. /// @@ -20691,6 +22624,95 @@ public enum InventorySetOnHandQuantitiesUserErrorCode INVALID_QUANTITY_TOO_HIGH, } + /// + ///Return type for `inventorySetScheduledChanges` mutation. + /// + public class InventorySetScheduledChangesPayload : GraphQLObject + { + /// + ///The scheduled changes that were created. + /// + public IEnumerable? scheduledChanges { get; set; } + /// + ///The list of errors that occurred from executing the mutation. + /// + public IEnumerable? userErrors { get; set; } + } + + /// + ///An error that occurs during the execution of `InventorySetScheduledChanges`. + /// + public class InventorySetScheduledChangesUserError : GraphQLObject, IDisplayableError + { + /// + ///The error code. + /// + public InventorySetScheduledChangesUserErrorCode? code { get; set; } + /// + ///The path to the input field that caused the error. + /// + public IEnumerable? field { get; set; } + /// + ///The error message. + /// + public string? message { get; set; } + } + + /// + ///Possible error codes that can be returned by `InventorySetScheduledChangesUserError`. + /// + public enum InventorySetScheduledChangesUserErrorCode + { + /// + ///There was an error updating the scheduled changes. + /// + ERROR_UPDATING_SCHEDULED, + /// + ///The from_name and to_name can't be the same. + /// + SAME_FROM_TO_NAMES, + /// + ///The specified fromName is invalid. + /// + INVALID_FROM_NAME, + /// + ///The specified toName is invalid. + /// + INVALID_TO_NAME, + /// + ///The item can only have one scheduled change for %{to_name} as the to_name. + /// + DUPLICATE_TO_NAME, + /// + ///The specified reason is invalid. Valid values: %{reasons}. + /// + INVALID_REASON, + /// + ///The item can only have one scheduled change for %{from_name} as the fromName. + /// + DUPLICATE_FROM_NAME, + /// + ///The location couldn't be found. + /// + LOCATION_NOT_FOUND, + /// + ///The inventory item was not found at the location specified. + /// + INVENTORY_STATE_NOT_FOUND, + /// + ///At least 1 item must be provided. + /// + ITEMS_EMPTY, + /// + ///The inventory item was not found. + /// + INVENTORY_ITEM_NOT_FOUND, + /// + ///The specified field is invalid. + /// + INCLUSION, + } + /// ///A job corresponds to some long running task that the client should poll for status. /// @@ -21423,6 +23445,10 @@ public class LineItem : GraphQLObject, INode [Obsolete("Use `discountedUnitPriceSet` instead.")] public decimal? discountedUnitPrice { get; set; } /// + ///The approximate split price of the line item, including any discounts that apply to the entire order. + /// + public MoneyBag? discountedUnitPriceAfterAllDiscountsSet { get; set; } + /// ///The approximate split price of a line item unit, in shop and presentment currencies. This value doesn't include discounts applied to the entire order. /// public MoneyBag? discountedUnitPriceSet { get; set; } @@ -21649,6 +23675,14 @@ public class LineItemGroup : GraphQLObject ///Title of the line item group. /// public string? title { get; set; } + /// + ///ID of the variant of the line item group. + /// + public string? variantId { get; set; } + /// + ///SKU of the variant of the line item group. + /// + public string? variantSku { get; set; } } /// @@ -22691,6 +24725,10 @@ public enum LocationEditUserErrorCode /// CANNOT_DISABLE_ONLINE_ORDER_FULFILLMENT, /// + ///Cannot modify the online order fulfillment preference for fulfillment service locations. + /// + CANNOT_MODIFY_ONLINE_ORDER_FULFILLMENT_FOR_FS_LOCATION, + /// ///The type is invalid. /// INVALID_TYPE, @@ -23073,6 +25111,14 @@ public class Market : GraphQLObject, IHasMetafieldDefinitions, IHasMetaf ///If it's the primary market and it has multiple web presences, then this field will return the primary domain web presence. /// public MarketWebPresence? webPresence { get; set; } + /// + ///The market’s web presences, which defines its SEO strategy. This can be a different domain, + ///subdomain, or subfolders of the primary domain. Each web presence comprises one or more + ///language variants. If a market doesn't have any web presences, then the market is accessible on the + ///primary market's domains using [country + ///selectors](https://shopify.dev/themes/internationalization/multiple-currencies-languages#the-country-selector). + /// + public MarketWebPresenceConnection? webPresences { get; set; } } /// @@ -23192,7 +25238,8 @@ public class MarketCurrencySettings : GraphQLObject ///Whether or not local currencies are enabled. If enabled, then prices will ///be converted to give each customer the best experience based on their ///region. If disabled, then all customers in this market will see prices - ///in the market's base currency. + ///in the market's base currency. For single country markets this will be true when + ///the market's base currency is the same as the default currency for the region. /// public bool? localCurrencies { get; set; } } @@ -23373,6 +25420,10 @@ public enum MarketLocalizableResourceType ///A metafield. Market localizable fields: `value`. /// METAFIELD, + /// + ///A Metaobject. Market Localizable fields are determined by the Metaobject type. + /// + METAOBJECT, } /// @@ -23541,6 +25592,21 @@ public class MarketRegionsCreatePayload : GraphQLObject? userErrors { get; set; } } + /// + ///Return type for `marketRegionsDelete` mutation. + /// + public class MarketRegionsDeletePayload : GraphQLObject + { + /// + ///The ID of the deleted market region. + /// + public IEnumerable? deletedIds { get; set; } + /// + ///The list of errors that occurred from executing the mutation. + /// + public IEnumerable? userErrors { get; set; } + } + /// ///Return type for `marketUpdate` mutation. /// @@ -23661,6 +25727,18 @@ public enum MarketUserErrorCode /// CANNOT_ADD_WEB_PRESENCE_TO_PRIMARY_MARKET, /// + ///Can't add another web presence to the market. + /// + MARKET_REACHED_WEB_PRESENCE_LIMIT, + /// + ///Can't have multiple subfolder web presences per market. + /// + CANNOT_HAVE_MULTIPLE_SUBFOLDERS_PER_MARKET, + /// + ///Can't have both subfolder and domain web presences. + /// + CANNOT_HAVE_BOTH_SUBFOLDER_AND_DOMAIN_WEB_PRESENCES, + /// ///One of `subfolderSuffix` or `domainId` is required. /// REQUIRES_DOMAIN_OR_SUBFOLDER, @@ -23728,7 +25806,7 @@ public class MarketWebPresence : GraphQLObject, INode /// ///The ISO code for the default locale. When a domain is used, this is the locale that will ///be used when the domain root is accessed. For example, if French is the default locale, - ///and `example.ca` is the market’s domian, then `example.ca` will load in French. + ///and `example.ca` is the market’s domain, then `example.ca` will load in French. /// public string? defaultLocale { get; set; } /// @@ -23754,6 +25832,25 @@ public class MarketWebPresence : GraphQLObject, INode public string? subfolderSuffix { get; set; } } + /// + ///An auto-generated type for paginating through multiple MarketWebPresences. + /// + public class MarketWebPresenceConnection : GraphQLObject, IConnectionWithNodesAndEdges + { + /// + ///A list of edges. + /// + public IEnumerable? edges { get; set; } + /// + ///A list of the nodes contained in MarketWebPresenceEdge. + /// + public IEnumerable? nodes { get; set; } + /// + ///Information to aid in pagination. + /// + public PageInfo? pageInfo { get; set; } + } + /// ///Return type for `marketWebPresenceCreate` mutation. /// @@ -23788,6 +25885,21 @@ public class MarketWebPresenceDeletePayload : GraphQLObject? userErrors { get; set; } } + /// + ///An auto-generated type which holds one MarketWebPresence and a cursor during pagination. + /// + public class MarketWebPresenceEdge : GraphQLObject, IEdge + { + /// + ///A cursor for use in pagination. + /// + public string? cursor { get; set; } + /// + ///The item at the end of MarketWebPresenceEdge. + /// + public MarketWebPresence? node { get; set; } + } + /// ///The URL for the homepage of the online store in the context of a particular market and a ///particular locale. @@ -23819,6 +25931,21 @@ public class MarketWebPresenceUpdatePayload : GraphQLObject? userErrors { get; set; } } + /// + ///Return type for `marketingActivitiesDeleteAllExternal` mutation. + /// + public class MarketingActivitiesDeleteAllExternalPayload : GraphQLObject + { + /// + ///The asynchronous job that performs the deletion. The status of the job may be used to determine when it's safe again to create new activities. + /// + public Job? job { get; set; } + /// + ///The list of errors that occurred from executing the mutation. + /// + public IEnumerable? userErrors { get; set; } + } + /// ///The marketing activity resource represents marketing that a /// merchant created through an app. @@ -23854,6 +25981,10 @@ public class MarketingActivity : GraphQLObject, INode /// public string? formData { get; set; } /// + ///The hierarchy level of the marketing activity. + /// + public MarketingActivityHierarchyLevel? hierarchyLevel { get; set; } + /// ///A globally-unique ID. /// public string? id { get; set; } @@ -23861,15 +25992,29 @@ public class MarketingActivity : GraphQLObject, INode ///Whether the marketing activity is in the main workflow version of the marketing automation. /// public bool? inMainWorkflowVersion { get; set; } + /// - ///The available marketing channels for a marketing activity. + ///The medium through which the marketing activity and event reached consumers. This is used for reporting aggregation. /// + [Obsolete("Use `marketingChannelType` instead.")] public MarketingChannel? marketingChannel { get; set; } /// + ///The medium through which the marketing activity and event reached consumers. This is used for reporting aggregation. + /// + public MarketingChannel? marketingChannelType { get; set; } + /// ///Associated marketing event of this marketing activity. /// public MarketingEvent? marketingEvent { get; set; } /// + ///ID of the parent activity of this marketing activity. + /// + public string? parentActivityId { get; set; } + /// + ///ID of the parent activity of this marketing activity. + /// + public string? parentRemoteId { get; set; } + /// ///A contextual description of the marketing activity based on the platform and tactic used. /// public string? sourceAndMedium { get; set; } @@ -23914,6 +26059,10 @@ public class MarketingActivity : GraphQLObject, INode /// public DateTime? updatedAt { get; set; } /// + ///A URL parameter value associated with this marketing activity. + /// + public string? urlParameterValue { get; set; } + /// ///The set of [Urchin Tracking Module]( /// https://help.shopify.com/https://en.wikipedia.org/wiki/UTM_parameters /// ) used in the URL for tracking this marketing activity. @@ -23974,6 +26123,21 @@ public class MarketingActivityCreatePayload : GraphQLObject? userErrors { get; set; } } + /// + ///Return type for `marketingActivityDeleteExternal` mutation. + /// + public class MarketingActivityDeleteExternalPayload : GraphQLObject + { + /// + ///The ID of the marketing activity that was deleted, if one was deleted. + /// + public string? deletedMarketingActivityId { get; set; } + /// + ///The list of errors that occurred from executing the mutation. + /// + public IEnumerable? userErrors { get; set; } + } + /// ///An auto-generated type which holds one MarketingActivity and a cursor during pagination. /// @@ -24031,6 +26195,56 @@ public class MarketingActivityExtensionAppErrors : GraphQLObject? userErrors { get; set; } } + /// + ///Set of possible statuses for an external marketing activity. + /// + public enum MarketingActivityExternalStatus + { + /// + ///This marketing activity is currently running. + /// + ACTIVE, + /// + ///This marketing activity has completed running. + /// + INACTIVE, + /// + ///This marketing activity is currently not running. + /// + PAUSED, + /// + ///This marketing activity is scheduled to run. + /// + SCHEDULED, + /// + ///This marketing activity was deleted and it was triggered from outside of Shopify. + /// + DELETED_EXTERNALLY, + /// + ///The marketing activity's status is unknown. + /// + UNDEFINED, + } + + /// + ///Hierarchy levels for external marketing activities. + /// + public enum MarketingActivityHierarchyLevel + { + /// + ///An advertisement activity. Must be parented by an ad group or a campaign activity, and must be assigned tracking parameters (URL or UTM). + /// + AD, + /// + ///A group of advertisement activities. Must be parented by a campaign activity. + /// + AD_GROUP, + /// + ///A campaign activity. May contain either ad groups or ads as child activities. If childless, then the campaign activity should have tracking parameters assigned (URL or UTM) otherwise it won't appear in marketing reports. + /// + CAMPAIGN, + } + /// ///The set of valid sort keys for the MarketingActivity query. /// @@ -24167,6 +26381,21 @@ public class MarketingActivityUpdatePayload : GraphQLObject? userErrors { get; set; } } + /// + ///Return type for `marketingActivityUpsertExternal` mutation. + /// + public class MarketingActivityUpsertExternalPayload : GraphQLObject + { + /// + ///The external marketing activity that was created or updated. + /// + public MarketingActivity? marketingActivity { get; set; } + /// + ///The list of errors that occurred from executing the mutation. + /// + public IEnumerable? userErrors { get; set; } + } + /// ///An error that occurs during the execution of a Shopify Marketing mutation. /// @@ -24232,7 +26461,7 @@ public enum MarketingBudgetBudgetType } /// - ///The available marketing channels for a marketing activity or event. A marketing channel is broad category of marketing, used for reporting aggregation. + ///The medium through which the marketing activity and event reached consumers. This is used for reporting aggregation. /// public enum MarketingChannel { @@ -24264,39 +26493,43 @@ public enum MarketingChannel public class MarketingEngagement : GraphQLObject { /// - ///The total ad spend for the day, if the marketing event is a paid ad with a daily spend. + ///The total ad spend for the marketing content. Recurring weekly, monthly, or yearly spend needs to be divided into daily amounts. /// public MoneyV2? adSpend { get; set; } /// - ///The total number of clicks on the marketing event for the day. + ///The unique string identifier of the channel to which the engagement metrics are being provided. This should be set when and only when providing channel-level engagements. This should be nil when providing activity-level engagements. For the correct handle for your channel, contact your partner manager. + /// + public string? channelHandle { get; set; } + /// + ///The total number of interactions, such as a button press or a screen touch, that occurred on the marketing content. /// public int? clicksCount { get; set; } /// - ///The total number of comments on marketing content for the day. + ///The total number of comments on the marketing content. /// public int? commentsCount { get; set; } /// - ///The total number of complaints for the day. For message-based platforms such as email or SMS, this represents the number of marketing emails or messages that were marked as spam. For social media platforms, this represents the number of dislikes or the number of times marketing content was reported. + ///The total number of complaints on the marketing content. For message-based platforms such as email or SMS, this represents the number of marketing emails or messages that were marked as spam. For social media platforms, this represents the number of dislikes or the number of times marketing content was reported. /// public int? complaintsCount { get; set; } /// - ///The total number of fails for the day. For message-based platforms such as email or SMS, this represents the number of bounced marketing emails or messages. + ///The total number of fails for the marketing content. For message-based platforms such as email or SMS, this represents the number of bounced marketing emails or messages. /// public int? failsCount { get; set; } /// - ///The total number of favorites, likes, saves, or bookmarks for the day. + ///The total number of favorites, likes, saves, or bookmarks on the marketing content. /// public int? favoritesCount { get; set; } /// - ///The date time at which the data was fetched. + ///The number of customers that have placed their first order. Doesn't include adjustments such as edits, exchanges, or returns. /// - public DateTime? fetchedAt { get; set; } + public decimal? firstTimeCustomers { get; set; } /// - ///The total number of impressions for the day. + ///The total number of times marketing content was displayed to users, whether or not an interaction occurred. For message-based platforms such as email or SMS, this represents the number of marketing emails or messages that were delivered. /// public int? impressionsCount { get; set; } /// - ///Whether the engagements are reported as lifetime values rather than daily totals. + ///Whether the engagements are reported as lifetime totals rather than daily increments. /// public bool? isCumulative { get; set; } /// @@ -24308,31 +26541,47 @@ public class MarketingEngagement : GraphQLObject /// public DateOnly? occurredOn { get; set; } /// - ///The total number of marketing emails or messages that were sent for the day. + ///The number of orders generated from the marketing content. + /// + public decimal? orders { get; set; } + /// + ///The number of returning customers that have placed an order. Doesn't include adjustments such as edits, exchanges, or returns. + /// + public decimal? returningCustomers { get; set; } + /// + ///The amount of sales generated from the marketing content. + /// + public MoneyV2? sales { get; set; } + /// + ///The total number of marketing emails or messages that were sent. /// public int? sendsCount { get; set; } /// - ///The total number of times marketing content was distributed or reposted to either one's own network of followers through a social media platform or other digital channels for the day. For message-based platforms such as email or SMS, this represents the number of times marketing emails or messages were forwarded. + ///The number of online store sessions generated from the marketing content. + /// + public int? sessionsCount { get; set; } + /// + ///The total number of times marketing content was distributed or reposted to either one's own network of followers through a social media platform or other digital channels. For message-based platforms such as email or SMS, this represents the number of times marketing emails or messages were forwarded. /// public int? sharesCount { get; set; } /// - ///The total number of unique clicks on marketing content for the day. + ///The total number of unique clicks on the marketing content. /// public int? uniqueClicksCount { get; set; } /// - ///The total number of unique views for the day. For message-based platforms such as email or SMS, this represents the number of unique users that opened a marketing email or message. For video-based content, this represents the number of unique users that played video content. + ///The total number of all users who saw marketing content since it was published. For message-based platforms such as email or SMS, this represents the number of unique users that opened a marketing email or message. For video-based content, this represents the number of unique users that played video content. /// public int? uniqueViewsCount { get; set; } /// - ///The total number of unsubscribes for the day. For social media platforms, this represents the number of unfollows. + ///The total number of unsubscribes on the marketing content. For social media platforms, this represents the number of unfollows. /// public int? unsubscribesCount { get; set; } /// - ///The UTC Offset that the app is using to determine which date to allocate spend to. + ///The time difference, in hours, between UTC and the time zone used to aggregate these metrics. /// public TimeSpan? utcOffset { get; set; } /// - ///The total number of views for the day. For message-based platforms such as email or SMS, this represents the number of times marketing emails or messages were opened. For video-based content, this represents the number of times videos were played. + ///The total number of views on the marketing content. For message-based platforms such as email or SMS, this represents the number of times marketing emails or messages were opened. For video-based content, this represents the number of times videos were played. /// public int? viewsCount { get; set; } } @@ -24343,7 +26592,7 @@ public class MarketingEngagement : GraphQLObject public class MarketingEngagementCreatePayload : GraphQLObject { /// - ///The marketing engagement that was created. + ///The marketing engagement that was created. This represents customer activity taken on a marketing activity or a marketing channel. /// public MarketingEngagement? marketingEngagement { get; set; } /// @@ -24352,6 +26601,21 @@ public class MarketingEngagementCreatePayload : GraphQLObject? userErrors { get; set; } } + /// + ///Return type for `marketingEngagementsDelete` mutation. + /// + public class MarketingEngagementsDeletePayload : GraphQLObject + { + /// + ///Informational message about the engagement data that has been marked for deletion. + /// + public string? result { get; set; } + /// + ///The list of errors that occurred from executing the mutation. + /// + public IEnumerable? userErrors { get; set; } + } + /// ///Represents actions that market a merchant's store or products. /// @@ -24361,11 +26625,17 @@ public class MarketingEvent : GraphQLObject, ILegacyInteroperabi ///The app that the marketing event is attributed to. /// public App? app { get; set; } + /// - ///The marketing channel used by the marketing event. + ///The medium through which the marketing activity and event reached consumers. This is used for reporting aggregation. /// + [Obsolete("Use `marketingChannelType` instead.")] public MarketingChannel? channel { get; set; } /// + ///The unique string identifier of the channel to which this activity belongs. For the correct handle for your channel, contact your partner manager. + /// + public string? channelHandle { get; set; } + /// ///A human-readable description of the marketing event. /// public string? description { get; set; } @@ -24386,6 +26656,10 @@ public class MarketingEvent : GraphQLObject, ILegacyInteroperabi /// public string? manageUrl { get; set; } /// + ///The medium through which the marketing activity and event reached consumers. This is used for reporting aggregation. + /// + public MarketingChannel? marketingChannelType { get; set; } + /// ///The URL where the marketing event can be previewed. /// public string? previewUrl { get; set; } @@ -24937,6 +27211,10 @@ public class MediaImageOriginalSource : GraphQLObject ///The size of the original file in bytes. /// public int? fileSize { get; set; } + /// + ///The URL of the original image, valid only for a short period. + /// + public string? url { get; set; } } /// @@ -25247,6 +27525,30 @@ public class MetafieldAccess : GraphQLObject ///The default admin access setting used for the metafields under this definition. /// public MetafieldAdminAccess? admin { get; set; } + /// + ///The explicit grants for this metafield definition, superseding the default admin access + ///for the specified grantees. + /// + public IEnumerable? grants { get; set; } + /// + ///The storefront access setting used for the metafields under this definition. + /// + public MetafieldStorefrontAccess? storefront { get; set; } + } + + /// + ///An explicit access grant for the metafields under this definition. + /// + public class MetafieldAccessGrant : GraphQLObject + { + /// + ///The level of access the grantee has. + /// + public MetafieldGrantAccessLevel? access { get; set; } + /// + ///The grantee being granted access. + /// + public string? grantee { get; set; } } /// @@ -25361,9 +27663,11 @@ public class MetafieldDefinition : GraphQLObject, INode ///store dates after the specified minimum. /// public IEnumerable? validations { get; set; } + /// ///Whether each of the metafields that belong to the metafield definition are visible from the Storefront API. /// + [Obsolete("Use `access.storefront` instead.")] public bool? visibleToStorefrontApi { get; set; } } @@ -25489,6 +27793,14 @@ public enum MetafieldDefinitionCreateUserErrorCode ///You have reached the maximum allowed definitions for automated collections. /// OWNER_TYPE_LIMIT_EXCEEDED_FOR_AUTOMATED_COLLECTIONS, + /// + ///The maximum limit of grants per definition type has been exceeded. + /// + GRANT_LIMIT_EXCEEDED, + /// + ///The input combination is invalid. + /// + INVALID_INPUT_COMBINATION, } /// @@ -25859,6 +28171,18 @@ public enum MetafieldDefinitionUpdateUserErrorCode ///You have reached the maximum allowed definitions for automated collections. /// OWNER_TYPE_LIMIT_EXCEEDED_FOR_AUTOMATED_COLLECTIONS, + /// + ///You cannot change the metaobject definition pointed to by a metaobject reference metafield definition. + /// + METAOBJECT_DEFINITION_CHANGED, + /// + ///The maximum limit of grants per definition type has been exceeded. + /// + GRANT_LIMIT_EXCEEDED, + /// + ///The input combination is invalid. + /// + INVALID_INPUT_COMBINATION, } /// @@ -25934,6 +28258,21 @@ public class MetafieldEdge : GraphQLObject, IEdge public Metafield? node { get; set; } } + /// + ///Possible access levels for explicit metafield access grants. + /// + public enum MetafieldGrantAccessLevel + { + /// + ///Read metafield access. + /// + READ, + /// + ///Read and write metafield access. + /// + READ_WRITE, + } + /// ///Possible types of a metafield's owner resource. /// @@ -25956,6 +28295,10 @@ public enum MetafieldOwnerType /// PAYMENT_CUSTOMIZATION, /// + ///The Validation metafield owner type. + /// + VALIDATION, + /// ///The Customer metafield owner type. /// CUSTOMER, @@ -26005,6 +28348,14 @@ public enum MetafieldOwnerType /// PAGE, /// + ///The Fulfillment Constraint Rule metafield owner type. + /// + FULFILLMENT_CONSTRAINT_RULE, + /// + ///The Order Routing Location Rule metafield owner type. + /// + ORDER_ROUTING_LOCATION_RULE, + /// ///The Discount metafield owner type. /// DISCOUNT, @@ -26199,6 +28550,21 @@ public class MetafieldRelationEdge : GraphQLObject, IEdge public MetafieldRelation? node { get; set; } } + /// + ///Defines how the metafields of a definition can be accessed in Storefront API surface areas, including Liquid and the GraphQL Storefront API. + /// + public enum MetafieldStorefrontAccess + { + /// + ///Metafields are accessible in the GraphQL Storefront API and online store Liquid templates. + /// + PUBLIC_READ, + /// + ///Metafields are not accessible in any Storefront API surface area. + /// + NONE, + } + /// ///By default, the Storefront API can't read metafields. To make specific metafields visible in the Storefront API, ///you need to create a `MetafieldStorefrontVisibility` record. A `MetafieldStorefrontVisibility` record is a list @@ -26426,6 +28792,10 @@ public enum MetafieldsSetUserErrorCode ///ApiPermission metafields can only be created or updated by the app owner. /// APP_NOT_AUTHORIZED, + /// + ///The metafield violates a capability restriction. + /// + CAPABILITY_VIOLATION, } /// @@ -26442,6 +28812,14 @@ public class Metaobject : GraphQLObject, INode, IMetafieldReference, /// public App? createdBy { get; set; } /// + ///The app used to create the object. + /// + public App? createdByApp { get; set; } + /// + ///The staff member who created the metaobject. + /// + public StaffMember? createdByStaff { get; set; } + /// ///The MetaobjectDefinition that models this object type. /// public MetaobjectDefinition? definition { get; set; } @@ -26476,6 +28854,10 @@ public class Metaobject : GraphQLObject, INode, IMetafieldReference, [Obsolete("Use `createdByStaff` instead.")] public StaffMember? staffMember { get; set; } /// + ///The recommended field to visually represent this metaobject. May be a file reference or color field. + /// + public MetaobjectField? thumbnailField { get; set; } + /// ///The type of the metaobject. /// public string? type { get; set; } @@ -26550,16 +28932,39 @@ public class MetaobjectBulkDeletePayload : GraphQLObject public class MetaobjectCapabilities : GraphQLObject { + /// + ///Indicates whether a metaobject definition can be displayed as a page on the Online Store. + /// + public MetaobjectCapabilitiesOnlineStore? onlineStore { get; set; } /// ///Indicate whether a metaobject definition is publishable. /// public MetaobjectCapabilitiesPublishable? publishable { get; set; } /// + ///Indicate whether a metaobject definition is renderable and exposes SEO data. + /// + public MetaobjectCapabilitiesRenderable? renderable { get; set; } + /// ///Indicate whether a metaobject definition is translatable. /// public MetaobjectCapabilitiesTranslatable? translatable { get; set; } } + /// + ///The Online Store capability of a metaobject definition. + /// + public class MetaobjectCapabilitiesOnlineStore : GraphQLObject + { + /// + ///The data associated with the Online Store capability. + /// + public MetaobjectCapabilityDefinitionDataOnlineStore? data { get; set; } + /// + ///Indicates if the capability is enabled. + /// + public bool? enabled { get; set; } + } + /// ///The publishable capability of a metaobject definition. /// @@ -26571,6 +28976,21 @@ public class MetaobjectCapabilitiesPublishable : GraphQLObject + ///The renderable capability of a metaobject definition. + /// + public class MetaobjectCapabilitiesRenderable : GraphQLObject + { + /// + ///The data associated with the renderable capability. + /// + public MetaobjectCapabilityDefinitionDataRenderable? data { get; set; } + /// + ///Indicates if the capability is enabled. + /// + public bool? enabled { get; set; } + } + /// ///The translatable capability of a metaobject definition. /// @@ -26587,12 +29007,27 @@ public class MetaobjectCapabilitiesTranslatable : GraphQLObject public class MetaobjectCapabilityData : GraphQLObject { + /// + ///The Online Store capability for this metaobject. + /// + public MetaobjectCapabilityDataOnlineStore? onlineStore { get; set; } /// ///The publishable capability for this metaobject. /// public MetaobjectCapabilityDataPublishable? publishable { get; set; } } + /// + ///The Online Store capability for the parent metaobject. + /// + public class MetaobjectCapabilityDataOnlineStore : GraphQLObject + { + /// + ///The theme template used when viewing the metaobject in a store. + /// + public string? templateSuffix { get; set; } + } + /// ///The publishable capability for the parent metaobject. /// @@ -26604,6 +29039,36 @@ public class MetaobjectCapabilityDataPublishable : GraphQLObject + ///The Online Store capability data for the metaobject definition. + /// + public class MetaobjectCapabilityDefinitionDataOnlineStore : GraphQLObject + { + /// + ///Flag indicating if a sufficient number of redirects are available to redirect all published entries. + /// + public bool? canCreateRedirects { get; set; } + /// + ///The URL handle for accessing pages of this metaobject type in the Online Store. + /// + public string? urlHandle { get; set; } + } + + /// + ///The renderable capability data for the metaobject definition. + /// + public class MetaobjectCapabilityDefinitionDataRenderable : GraphQLObject + { + /// + ///The metaobject field used as an alias for the SEO page description. + /// + public string? metaDescriptionKey { get; set; } + /// + ///The metaobject field used as an alias for the SEO page title. + /// + public string? metaTitleKey { get; set; } + } + /// ///An auto-generated type for paginating through multiple Metaobjects. /// @@ -26652,6 +29117,14 @@ public class MetaobjectDefinition : GraphQLObject, INode /// public MetaobjectCapabilities? capabilities { get; set; } /// + ///The app used to create the metaobject definition. + /// + public App? createdByApp { get; set; } + /// + ///The staff member who created the metaobject definition. + /// + public StaffMember? createdByStaff { get; set; } + /// ///The administrative description. /// public string? description { get; set; } @@ -26664,6 +29137,10 @@ public class MetaobjectDefinition : GraphQLObject, INode /// public IEnumerable? fieldDefinitions { get; set; } /// + ///Whether this metaobject definition has field whose type can visually represent a metaobject with the `thumbnailField`. + /// + public bool? hasThumbnailField { get; set; } + /// ///A globally-unique ID. /// public string? id { get; set; } @@ -26816,6 +29293,10 @@ public class MetaobjectField : GraphQLObject /// public MetafieldReferenceConnection? references { get; set; } /// + ///For file reference or color fields, provides visual attributes for this field. + /// + public MetaobjectThumbnail? thumbnail { get; set; } + /// ///The type of the field. /// public string? type { get; set; } @@ -26889,6 +29370,21 @@ public enum MetaobjectStorefrontAccess PUBLIC_READ, } + /// + ///Provides attributes for visual representation. + /// + public class MetaobjectThumbnail : GraphQLObject + { + /// + ///The file to be used for visual representation of this metaobject. + /// + public IFile? file { get; set; } + /// + ///The hexadecimal color code to be used for respresenting this metaobject. + /// + public string? hex { get; set; } + } + /// ///Return type for `metaobjectUpdate` mutation. /// @@ -27043,6 +29539,26 @@ public enum MetaobjectUserErrorCode ///The capability you are using is not enabled. /// CAPABILITY_NOT_ENABLED, + /// + ///The Online Store URL handle is already taken. + /// + URL_HANDLE_TAKEN, + /// + ///The Online Store URL handle is invalid. + /// + URL_HANDLE_INVALID, + /// + ///The Online Store URL handle cannot be blank. + /// + URL_HANDLE_BLANK, + /// + ///Renderable data input is referencing an invalid field. + /// + FIELD_TYPE_INVALID, + /// + ///The input is missing required keys. + /// + MISSING_REQUIRED_KEYS, } /// @@ -27207,18 +29723,6 @@ public class Mutation : GraphQLObject ///Test and demo shops aren't charged. /// public AppPurchaseOneTimeCreatePayload? appPurchaseOneTimeCreate { get; set; } - - /// - ///Creates a record of the attributed revenue for the app. This mutation should only be used to capture transactions that are not managed by the Billing API. - /// - [Obsolete("This mutation will be removed in a future version.")] - public AppRevenueAttributionRecordCreatePayload? appRevenueAttributionRecordCreate { get; set; } - - /// - ///Deletes a record of the attributed revenue for the app. - /// - [Obsolete("This mutation will be removed in a future version.")] - public AppRevenueAttributionRecordDeletePayload? appRevenueAttributionRecordDelete { get; set; } /// ///Cancels an app subscription on a store. /// @@ -27289,6 +29793,10 @@ public class Mutation : GraphQLObject /// public CatalogUpdatePayload? catalogUpdate { get; set; } /// + ///Updates the checkout branding settings for a [checkout profile](https://shopify.dev/api/admin-graphql/unstable/queries/checkoutProfile). If the settings don't exist, then new settings are created. The checkout branding settings applied to a published checkout profile will be immediately visible within the store's checkout. The checkout branding settings applied to a draft checkout profile could be previewed within the admin checkout editor. + /// + public CheckoutBrandingUpsertPayload? checkoutBrandingUpsert { get; set; } + /// ///Adds products to a collection. /// public CollectionAddProductsPayload? collectionAddProducts { get; set; } @@ -27449,6 +29957,12 @@ public class Mutation : GraphQLObject /// public CustomerAddTaxExemptionsPayload? customerAddTaxExemptions { get; set; } /// + ///Cancels a pending erasure of a customer's data. + /// + ///To request an erasure of a customer's data use the [customerRequestDataErasure mutation](https://shopify.dev/api/admin-graphql/unstable/mutations/customerRequestDataErasure). + /// + public CustomerCancelDataErasurePayload? customerCancelDataErasure { get; set; } + /// ///Create a new customer. As of API version 2022-10, apps using protected customer data must meet the protected customer data [requirements](https://shopify.dev/apps/store/data-protection/protected-customer-data). /// public CustomerCreatePayload? customerCreate { get; set; } @@ -27533,6 +30047,12 @@ public class Mutation : GraphQLObject /// public CustomerReplaceTaxExemptionsPayload? customerReplaceTaxExemptions { get; set; } /// + ///Enqueues a request to erase customer's data. Read more [here](https://help.shopify.com/manual/privacy-and-security/privacy/processing-customer-data-requests#erase-customer-personal-data). + /// + ///To cancel the data erasure request use the [customerCancelDataErasure mutation](https://shopify.dev/api/admin-graphql/unstable/mutations/customerCancelDataErasure). + /// + public CustomerRequestDataErasurePayload? customerRequestDataErasure { get; set; } + /// ///Creates a customer segment members query. /// public CustomerSegmentMembersQueryCreatePayload? customerSegmentMembersQueryCreate { get; set; } @@ -27639,6 +30159,14 @@ public class Mutation : GraphQLObject /// public DiscountAutomaticDeletePayload? discountAutomaticDelete { get; set; } /// + ///Creates a free shipping automatic discount. + /// + public DiscountAutomaticFreeShippingCreatePayload? discountAutomaticFreeShippingCreate { get; set; } + /// + ///Updates a free shipping automatic discount. + /// + public DiscountAutomaticFreeShippingUpdatePayload? discountAutomaticFreeShippingUpdate { get; set; } + /// ///Activates a code discount. /// public DiscountCodeActivatePayload? discountCodeActivate { get; set; } @@ -27800,6 +30328,10 @@ public class Mutation : GraphQLObject /// public FileUpdatePayload? fileUpdate { get; set; } /// + ///Generates a signature for a Flow action payload. + /// + public FlowGenerateSignaturePayload? flowGenerateSignature { get; set; } + /// ///Triggers any workflows that begin with the trigger specified in the request body. To learn more, refer to [_Create Shopify Flow triggers_](https://shopify.dev/apps/flow/triggers). /// public FlowTriggerReceivePayload? flowTriggerReceive { get; set; } @@ -27808,6 +30340,14 @@ public class Mutation : GraphQLObject /// public FulfillmentCancelPayload? fulfillmentCancel { get; set; } /// + ///Creates a fulfillment constraint rule and its metafield. + /// + public FulfillmentConstraintRuleCreatePayload? fulfillmentConstraintRuleCreate { get; set; } + /// + ///Deletes a fulfillment constraint rule and its metafields. + /// + public FulfillmentConstraintRuleDeletePayload? fulfillmentConstraintRuleDelete { get; set; } + /// ///Creates a fulfillment for one or many fulfillment orders. ///The fulfillment orders are associated with the same order and are assigned to the same location. /// @@ -27903,6 +30443,10 @@ public class Mutation : GraphQLObject public FulfillmentOrderReleaseHoldPayload? fulfillmentOrderReleaseHold { get; set; } /// ///Reschedules a scheduled fulfillment order. + /// + ///Updates the value of the `fulfillAt` field on a scheduled fulfillment order. + /// + ///The fulfillment order will be marked as ready for fulfillment at this date and time. /// public FulfillmentOrderReschedulePayload? fulfillmentOrderReschedule { get; set; } /// @@ -28013,6 +30557,10 @@ public class Mutation : GraphQLObject /// public InventorySetOnHandQuantitiesPayload? inventorySetOnHandQuantities { get; set; } /// + ///Set up scheduled changes of inventory items. + /// + public InventorySetScheduledChangesPayload? inventorySetScheduledChanges { get; set; } + /// ///Activates a location. /// public LocationActivatePayload? locationActivate { get; set; } @@ -28071,6 +30619,10 @@ public class Mutation : GraphQLObject /// public MarketRegionsCreatePayload? marketRegionsCreate { get; set; } /// + ///Deletes a list of market regions. + /// + public MarketRegionsDeletePayload? marketRegionsDelete { get; set; } + /// ///Updates the properties of a market. /// public MarketUpdatePayload? marketUpdate { get; set; } @@ -28087,6 +30639,10 @@ public class Mutation : GraphQLObject /// public MarketWebPresenceUpdatePayload? marketWebPresenceUpdate { get; set; } /// + ///Deletes all external marketing activities. Deletion is performed by a background job, as it may take a bit of time to complete if a large number of activities are to be deleted. Attempting to create or modify external activities before the job has completed will result in the create/update/upsert mutation returning an error. + /// + public MarketingActivitiesDeleteAllExternalPayload? marketingActivitiesDeleteAllExternal { get; set; } + /// ///Create new marketing activity. /// public MarketingActivityCreatePayload? marketingActivityCreate { get; set; } @@ -28095,6 +30651,10 @@ public class Mutation : GraphQLObject /// public MarketingActivityCreateExternalPayload? marketingActivityCreateExternal { get; set; } /// + ///Deletes an external marketing activity. + /// + public MarketingActivityDeleteExternalPayload? marketingActivityDeleteExternal { get; set; } + /// ///Updates a marketing activity with the latest information. /// public MarketingActivityUpdatePayload? marketingActivityUpdate { get; set; } @@ -28103,10 +30663,20 @@ public class Mutation : GraphQLObject /// public MarketingActivityUpdateExternalPayload? marketingActivityUpdateExternal { get; set; } /// - ///Creates a new marketing event engagement for a marketing activity or a marketing channel. + ///Creates a new external marketing activity or updates an existing one. When optional fields are absent or null, associated information will be removed from an existing marketing activity. + /// + public MarketingActivityUpsertExternalPayload? marketingActivityUpsertExternal { get; set; } + /// + ///Creates a new marketing engagement for a marketing activity or a marketing channel. /// public MarketingEngagementCreatePayload? marketingEngagementCreate { get; set; } /// + ///Marks channel-level engagement data such that it no longer appears in reports. + /// Activity-level data cannot be deleted directly, instead the MarketingActivity itself should be deleted to + /// hide it from reports. + /// + public MarketingEngagementsDeletePayload? marketingEngagementsDelete { get; set; } + /// ///Creates a metafield definition. /// public MetafieldDefinitionCreatePayload? metafieldDefinitionCreate { get; set; } @@ -28193,6 +30763,10 @@ public class Mutation : GraphQLObject /// public MetaobjectUpsertPayload? metaobjectUpsert { get; set; } /// + ///Cancels an order. + /// + public OrderCancelPayload? orderCancel { get; set; } + /// ///Captures payment for an authorized transaction on an order. An order can only be captured if it has a successful authorization transaction. Capturing an order will claim the money reserved by the authorization. orderCapture can be used to capture multiple times as long as the OrderTransaction is multicapturable. To capture a partial payment, the included `amount` value should be less than the total order amount. Multicapture is available only to stores on a Shopify Plus plan. /// public OrderCapturePayload? orderCapture { get; set; } @@ -28209,7 +30783,7 @@ public class Mutation : GraphQLObject /// public OrderEditAddCustomItemPayload? orderEditAddCustomItem { get; set; } /// - ///Adds a discount to a newly added line item on the current order edit. More information on how to use the GraphQL Admin API to edit an existing order, refer to [Edit existing orders](https://shopify.dev/apps/fulfillment/order-management-apps/order-editing). + ///Adds a discount to a line item on the current order edit. For more information on how to use the GraphQL Admin API to edit an existing order, refer to [Edit existing orders](https://shopify.dev/apps/fulfillment/order-management-apps/order-editing). /// public OrderEditAddLineItemDiscountPayload? orderEditAddLineItemDiscount { get; set; } /// @@ -28227,14 +30801,22 @@ public class Mutation : GraphQLObject /// public OrderEditCommitPayload? orderEditCommit { get; set; } /// + ///Removes a discount on the current order edit. For more information on how to use the GraphQL Admin API to edit an existing order, refer to [Edit existing orders](https://shopify.dev/apps/fulfillment/order-management-apps/order-editing). + /// + public OrderEditRemoveDiscountPayload? orderEditRemoveDiscount { get; set; } + /// ///Removes a line item discount that was applied as part of an order edit. /// public OrderEditRemoveLineItemDiscountPayload? orderEditRemoveLineItemDiscount { get; set; } /// - ///Sets the quantity of a line item on an order that is being edited. More information on how to use the GraphQL Admin API to edit an existing order, refer to [Edit existing orders](https://shopify.dev/apps/fulfillment/order-management-apps/order-editing). + ///Sets the quantity of a line item on an order that is being edited. For more information on how to use the GraphQL Admin API to edit an existing order, refer to [Edit existing orders](https://shopify.dev/apps/fulfillment/order-management-apps/order-editing). /// public OrderEditSetQuantityPayload? orderEditSetQuantity { get; set; } /// + ///Updates a manual line level discount on the current order edit. For more information on how to use the GraphQL Admin API to edit an existing order, refer to [Edit existing orders](https://shopify.dev/apps/fulfillment/order-management-apps/order-editing). + /// + public OrderEditUpdateDiscountPayload? orderEditUpdateDiscount { get; set; } + /// ///Sends an email invoice for an order. /// public OrderInvoiceSendPayload? orderInvoiceSend { get; set; } @@ -28619,6 +31201,10 @@ public class Mutation : GraphQLObject /// public PublishableUnpublishToCurrentChannelPayload? publishableUnpublishToCurrentChannel { get; set; } /// + ///Updates quantity pricing on a price list. You can use the `quantityPricingByVariantUpdate` mutation to set fixed prices, quantity rules, and quantity price breaks. This mutation does not allow partial successes. If any of the requested resources fail to update, none of the requested resources will be updated. Delete operations are executed before create operations. + /// + public QuantityPricingByVariantUpdatePayload? quantityPricingByVariantUpdate { get; set; } + /// ///Creates or updates existing quantity rules on a price list. ///You can use the `quantityRulesAdd` mutation to set order level minimums, maximumums and increments for specific product variants. /// @@ -28660,7 +31246,7 @@ public class Mutation : GraphQLObject /// public ReturnDeclineRequestPayload? returnDeclineRequest { get; set; } /// - ///Refunds a return and associates it with the related return request. + ///Refunds a return when its status is `OPEN` or `CLOSED` and associates it with the related return request. /// public ReturnRefundPayload? returnRefund { get; set; } /// @@ -28899,19 +31485,50 @@ public class Mutation : GraphQLObject /// public SubscriptionBillingCycleScheduleEditPayload? subscriptionBillingCycleScheduleEdit { get; set; } /// + ///Skips a Subscription Billing Cycle. + /// + public SubscriptionBillingCycleSkipPayload? subscriptionBillingCycleSkip { get; set; } + /// + ///Unskips a Subscription Billing Cycle. + /// + public SubscriptionBillingCycleUnskipPayload? subscriptionBillingCycleUnskip { get; set; } + /// + ///Activates a Subscription Contract. + /// + public SubscriptionContractActivatePayload? subscriptionContractActivate { get; set; } + /// ///Creates a Subscription Contract. /// public SubscriptionContractAtomicCreatePayload? subscriptionContractAtomicCreate { get; set; } /// + ///Cancels a Subscription Contract. + /// + public SubscriptionContractCancelPayload? subscriptionContractCancel { get; set; } + /// ///Creates a Subscription Contract. /// public SubscriptionContractCreatePayload? subscriptionContractCreate { get; set; } /// + ///Expires a Subscription Contract. + /// + public SubscriptionContractExpirePayload? subscriptionContractExpire { get; set; } + /// + ///Fails a Subscription Contract. + /// + public SubscriptionContractFailPayload? subscriptionContractFail { get; set; } + /// + ///Pauses a Subscription Contract. + /// + public SubscriptionContractPausePayload? subscriptionContractPause { get; set; } + /// ///Allows for the easy change of a Product in a Contract or a Product price change. /// public SubscriptionContractProductChangePayload? subscriptionContractProductChange { get; set; } /// - ///Sets the next billing date of a Subscription Contract. + ///Sets the next billing date of a Subscription Contract. This field is managed by the apps. + /// Alternatively you can utilize our + /// [Billing Cycles APIs](https://shopify.dev/docs/apps/selling-strategies/subscriptions/billing-cycles), + /// which provide auto-computed billing dates and additional functionalities. /// public SubscriptionContractSetNextBillingDatePayload? subscriptionContractSetNextBillingDate { get; set; } /// @@ -29026,6 +31643,18 @@ public class Mutation : GraphQLObject /// public UrlRedirectUpdatePayload? urlRedirectUpdate { get; set; } /// + ///Creates a validation. + /// + public ValidationCreatePayload? validationCreate { get; set; } + /// + ///Deletes a validation. + /// + public ValidationDeletePayload? validationDelete { get; set; } + /// + ///Update a validation. + /// + public ValidationUpdatePayload? validationUpdate { get; set; } + /// ///Creates a new web pixel settings. /// public WebPixelCreatePayload? webPixelCreate { get; set; } @@ -29133,6 +31762,7 @@ public class NavigationItem : GraphQLObject /// [JsonPolymorphic(TypeDiscriminatorPropertyName = "__typename")] [JsonDerivedType(typeof(AbandonedCheckout), typeDiscriminator: "AbandonedCheckout")] + [JsonDerivedType(typeof(AbandonedCheckoutLineItem), typeDiscriminator: "AbandonedCheckoutLineItem")] [JsonDerivedType(typeof(Abandonment), typeDiscriminator: "Abandonment")] [JsonDerivedType(typeof(AddAllProductsOperation), typeDiscriminator: "AddAllProductsOperation")] [JsonDerivedType(typeof(AdditionalFee), typeDiscriminator: "AdditionalFee")] @@ -29192,6 +31822,7 @@ public class NavigationItem : GraphQLObject [JsonDerivedType(typeof(ExchangeV2), typeDiscriminator: "ExchangeV2")] [JsonDerivedType(typeof(ExternalVideo), typeDiscriminator: "ExternalVideo")] [JsonDerivedType(typeof(Fulfillment), typeDiscriminator: "Fulfillment")] + [JsonDerivedType(typeof(FulfillmentConstraintRule), typeDiscriminator: "FulfillmentConstraintRule")] [JsonDerivedType(typeof(FulfillmentEvent), typeDiscriminator: "FulfillmentEvent")] [JsonDerivedType(typeof(FulfillmentLineItem), typeDiscriminator: "FulfillmentLineItem")] [JsonDerivedType(typeof(FulfillmentOrder), typeDiscriminator: "FulfillmentOrder")] @@ -29203,6 +31834,7 @@ public class NavigationItem : GraphQLObject [JsonDerivedType(typeof(InventoryAdjustmentGroup), typeDiscriminator: "InventoryAdjustmentGroup")] [JsonDerivedType(typeof(InventoryItem), typeDiscriminator: "InventoryItem")] [JsonDerivedType(typeof(InventoryLevel), typeDiscriminator: "InventoryLevel")] + [JsonDerivedType(typeof(InventoryQuantity), typeDiscriminator: "InventoryQuantity")] [JsonDerivedType(typeof(LineItem), typeDiscriminator: "LineItem")] [JsonDerivedType(typeof(LineItemMutable), typeDiscriminator: "LineItemMutable")] [JsonDerivedType(typeof(Location), typeDiscriminator: "Location")] @@ -29243,6 +31875,7 @@ public class NavigationItem : GraphQLObject [JsonDerivedType(typeof(ProductVariantComponent), typeDiscriminator: "ProductVariantComponent")] [JsonDerivedType(typeof(Publication), typeDiscriminator: "Publication")] [JsonDerivedType(typeof(PublicationResourceOperation), typeDiscriminator: "PublicationResourceOperation")] + [JsonDerivedType(typeof(QuantityPriceBreak), typeDiscriminator: "QuantityPriceBreak")] [JsonDerivedType(typeof(Refund), typeDiscriminator: "Refund")] [JsonDerivedType(typeof(Return), typeDiscriminator: "Return")] [JsonDerivedType(typeof(ReturnLineItem), typeDiscriminator: "ReturnLineItem")] @@ -29263,6 +31896,7 @@ public class NavigationItem : GraphQLObject [JsonDerivedType(typeof(ShopAddress), typeDiscriminator: "ShopAddress")] [JsonDerivedType(typeof(ShopPolicy), typeDiscriminator: "ShopPolicy")] [JsonDerivedType(typeof(ShopifyPaymentsAccount), typeDiscriminator: "ShopifyPaymentsAccount")] + [JsonDerivedType(typeof(ShopifyPaymentsBalanceTransaction), typeDiscriminator: "ShopifyPaymentsBalanceTransaction")] [JsonDerivedType(typeof(ShopifyPaymentsBankAccount), typeDiscriminator: "ShopifyPaymentsBankAccount")] [JsonDerivedType(typeof(ShopifyPaymentsDispute), typeDiscriminator: "ShopifyPaymentsDispute")] [JsonDerivedType(typeof(ShopifyPaymentsDisputeEvidence), typeDiscriminator: "ShopifyPaymentsDisputeEvidence")] @@ -29280,12 +31914,14 @@ public class NavigationItem : GraphQLObject [JsonDerivedType(typeof(TransactionFee), typeDiscriminator: "TransactionFee")] [JsonDerivedType(typeof(UrlRedirect), typeDiscriminator: "UrlRedirect")] [JsonDerivedType(typeof(UrlRedirectImport), typeDiscriminator: "UrlRedirectImport")] + [JsonDerivedType(typeof(Validation), typeDiscriminator: "Validation")] [JsonDerivedType(typeof(Video), typeDiscriminator: "Video")] [JsonDerivedType(typeof(WebPixel), typeDiscriminator: "WebPixel")] [JsonDerivedType(typeof(WebhookSubscription), typeDiscriminator: "WebhookSubscription")] public interface INode : IGraphQLObject { public AbandonedCheckout? AsAbandonedCheckout() => this as AbandonedCheckout; + public AbandonedCheckoutLineItem? AsAbandonedCheckoutLineItem() => this as AbandonedCheckoutLineItem; public Abandonment? AsAbandonment() => this as Abandonment; public AddAllProductsOperation? AsAddAllProductsOperation() => this as AddAllProductsOperation; public AdditionalFee? AsAdditionalFee() => this as AdditionalFee; @@ -29345,6 +31981,7 @@ public interface INode : IGraphQLObject public ExchangeV2? AsExchangeV2() => this as ExchangeV2; public ExternalVideo? AsExternalVideo() => this as ExternalVideo; public Fulfillment? AsFulfillment() => this as Fulfillment; + public FulfillmentConstraintRule? AsFulfillmentConstraintRule() => this as FulfillmentConstraintRule; public FulfillmentEvent? AsFulfillmentEvent() => this as FulfillmentEvent; public FulfillmentLineItem? AsFulfillmentLineItem() => this as FulfillmentLineItem; public FulfillmentOrder? AsFulfillmentOrder() => this as FulfillmentOrder; @@ -29356,6 +31993,7 @@ public interface INode : IGraphQLObject public InventoryAdjustmentGroup? AsInventoryAdjustmentGroup() => this as InventoryAdjustmentGroup; public InventoryItem? AsInventoryItem() => this as InventoryItem; public InventoryLevel? AsInventoryLevel() => this as InventoryLevel; + public InventoryQuantity? AsInventoryQuantity() => this as InventoryQuantity; public LineItem? AsLineItem() => this as LineItem; public LineItemMutable? AsLineItemMutable() => this as LineItemMutable; public Location? AsLocation() => this as Location; @@ -29396,6 +32034,7 @@ public interface INode : IGraphQLObject public ProductVariantComponent? AsProductVariantComponent() => this as ProductVariantComponent; public Publication? AsPublication() => this as Publication; public PublicationResourceOperation? AsPublicationResourceOperation() => this as PublicationResourceOperation; + public QuantityPriceBreak? AsQuantityPriceBreak() => this as QuantityPriceBreak; public Refund? AsRefund() => this as Refund; public Return? AsReturn() => this as Return; public ReturnLineItem? AsReturnLineItem() => this as ReturnLineItem; @@ -29416,6 +32055,7 @@ public interface INode : IGraphQLObject public ShopAddress? AsShopAddress() => this as ShopAddress; public ShopPolicy? AsShopPolicy() => this as ShopPolicy; public ShopifyPaymentsAccount? AsShopifyPaymentsAccount() => this as ShopifyPaymentsAccount; + public ShopifyPaymentsBalanceTransaction? AsShopifyPaymentsBalanceTransaction() => this as ShopifyPaymentsBalanceTransaction; public ShopifyPaymentsBankAccount? AsShopifyPaymentsBankAccount() => this as ShopifyPaymentsBankAccount; public ShopifyPaymentsDispute? AsShopifyPaymentsDispute() => this as ShopifyPaymentsDispute; public ShopifyPaymentsDisputeEvidence? AsShopifyPaymentsDisputeEvidence() => this as ShopifyPaymentsDisputeEvidence; @@ -29433,6 +32073,7 @@ public interface INode : IGraphQLObject public TransactionFee? AsTransactionFee() => this as TransactionFee; public UrlRedirect? AsUrlRedirect() => this as UrlRedirect; public UrlRedirectImport? AsUrlRedirectImport() => this as UrlRedirectImport; + public Validation? AsValidation() => this as Validation; public Video? AsVideo() => this as Video; public WebPixel? AsWebPixel() => this as WebPixel; public WebhookSubscription? AsWebhookSubscription() => this as WebhookSubscription; @@ -29566,6 +32207,10 @@ public class Order : GraphQLObject, ICommentEventSubject, IHasEvents, IHa /// public OrderCancelReason? cancelReason { get; set; } /// + ///Cancellation details for the order. + /// + public OrderCancellation? cancellation { get; set; } + /// ///The date and time when the order was canceled. ///Returns `null` if the order wasn't canceled. /// @@ -30016,6 +32661,10 @@ public class Order : GraphQLObject, ICommentEventSubject, IHasEvents, IHa /// public ShippingLineConnection? shippingLines { get; set; } /// + ///The Shopify Protect details for the order. If Shopify Protect is disabled for the shop, then this will be null. + /// + public ShopifyProtectOrderSummary? shopifyProtect { get; set; } + /// ///A unique POS or third party order identifier. ///For example, "1234-12-1000" or "111-98567-54". The `receipt_number` field is derived from this value for POS orders. /// @@ -30257,6 +32906,27 @@ public class OrderApp : GraphQLObject public string? name { get; set; } } + /// + ///Return type for `orderCancel` mutation. + /// + public class OrderCancelPayload : GraphQLObject + { + /// + ///The job that asynchronously cancels the order. + /// + public Job? job { get; set; } + /// + ///The list of errors that occurred from executing the mutation. + /// + public IEnumerable? orderCancelUserErrors { get; set; } + + /// + ///The list of errors that occurred from executing the mutation. + /// + [Obsolete("Use `orderCancelUserErrors` instead.")] + public IEnumerable? userErrors { get; set; } + } + /// ///Represents the reason for the order's cancellation. /// @@ -30279,11 +32949,64 @@ public enum OrderCancelReason /// INVENTORY, /// + ///Staff made an error. + /// + STAFF, + /// ///The order was canceled for an unlisted reason. /// OTHER, } + /// + ///Errors related to order cancellation. + /// + public class OrderCancelUserError : GraphQLObject, IDisplayableError + { + /// + ///The error code. + /// + public OrderCancelUserErrorCode? code { get; set; } + /// + ///The path to the input field that caused the error. + /// + public IEnumerable? field { get; set; } + /// + ///The error message. + /// + public string? message { get; set; } + } + + /// + ///Possible error codes that can be returned by `OrderCancelUserError`. + /// + public enum OrderCancelUserErrorCode + { + /// + ///An order refund was requested but the user does not have the refund_orders permission. + /// + NO_REFUND_PERMISSION, + /// + ///The record with the ID used as the input value couldn't be found. + /// + NOT_FOUND, + /// + ///The input value is invalid. + /// + INVALID, + } + + /// + ///Details about the order cancellation. + /// + public class OrderCancellation : GraphQLObject + { + /// + ///Staff provided note for the order cancellation. + /// + public string? staffNote { get; set; } + } + /// ///Return type for `orderCapture` mutation. /// @@ -30622,6 +33345,51 @@ public class OrderEditCommitPayload : GraphQLObject public IEnumerable? userErrors { get; set; } } + /// + ///Return type for `orderEditRemoveDiscount` mutation. + /// + public class OrderEditRemoveDiscountPayload : GraphQLObject + { + /// + ///An order with the edits applied but not saved. + /// + public CalculatedOrder? calculatedOrder { get; set; } + /// + ///The list of errors that occurred from executing the mutation. + /// + public IEnumerable? userErrors { get; set; } + } + + /// + ///An error that occurs during the execution of `OrderEditRemoveDiscount`. + /// + public class OrderEditRemoveDiscountUserError : GraphQLObject, IDisplayableError + { + /// + ///The error code. + /// + public OrderEditRemoveDiscountUserErrorCode? code { get; set; } + /// + ///The path to the input field that caused the error. + /// + public IEnumerable? field { get; set; } + /// + ///The error message. + /// + public string? message { get; set; } + } + + /// + ///Possible error codes that can be returned by `OrderEditRemoveDiscountUserError`. + /// + public enum OrderEditRemoveDiscountUserErrorCode + { + /// + ///The input value is invalid. + /// + INVALID, + } + /// ///Return type for `orderEditRemoveLineItemDiscount` mutation. /// @@ -30660,6 +33428,51 @@ public class OrderEditSetQuantityPayload : GraphQLObject? userErrors { get; set; } } + /// + ///Return type for `orderEditUpdateDiscount` mutation. + /// + public class OrderEditUpdateDiscountPayload : GraphQLObject + { + /// + ///An order with the edits applied but not saved. + /// + public CalculatedOrder? calculatedOrder { get; set; } + /// + ///The list of errors that occurred from executing the mutation. + /// + public IEnumerable? userErrors { get; set; } + } + + /// + ///An error that occurs during the execution of `OrderEditUpdateDiscount`. + /// + public class OrderEditUpdateDiscountUserError : GraphQLObject, IDisplayableError + { + /// + ///The error code. + /// + public OrderEditUpdateDiscountUserErrorCode? code { get; set; } + /// + ///The path to the input field that caused the error. + /// + public IEnumerable? field { get; set; } + /// + ///The error message. + /// + public string? message { get; set; } + } + + /// + ///Possible error codes that can be returned by `OrderEditUpdateDiscountUserError`. + /// + public enum OrderEditUpdateDiscountUserErrorCode + { + /// + ///The input value is invalid. + /// + INVALID, + } + /// ///Return type for `orderInvoiceSend` mutation. /// @@ -30822,6 +33635,14 @@ public enum OrderPaymentStatusResult ///Status is unknown. /// UNKNOWN, + /// + ///The payment is awaiting processing. + /// + INITIATED, + /// + ///The payment is pending with the provider, and may take a while. + /// + PENDING, } /// @@ -31202,6 +34023,10 @@ public class OrderTransaction : GraphQLObject, INode /// public MoneyV2? maximumRefundableV2 { get; set; } /// + ///Whether the transaction can be captured multiple times. + /// + public bool? multiCapturable { get; set; } + /// ///The associated order. /// public Order? order { get; set; } @@ -32003,45 +34828,15 @@ public class PaymentCustomizationUpdatePayload : GraphQLObject [JsonPolymorphic(TypeDiscriminatorPropertyName = "__typename")] [JsonDerivedType(typeof(CardPaymentDetails), typeDiscriminator: "CardPaymentDetails")] + [JsonDerivedType(typeof(ShopPayInstallmentsPaymentDetails), typeDiscriminator: "ShopPayInstallmentsPaymentDetails")] public interface IPaymentDetails : IGraphQLObject { public CardPaymentDetails? AsCardPaymentDetails() => this as CardPaymentDetails; + public ShopPayInstallmentsPaymentDetails? AsShopPayInstallmentsPaymentDetails() => this as ShopPayInstallmentsPaymentDetails; /// - ///The response code from the address verification system (AVS). The code is always a single letter. - /// - public string? avsResultCode { get; set; } - /// - ///The issuer identification number (IIN), formerly known as bank identification number (BIN) of the customer's credit card. This is made up of the first few digits of the credit card number. - /// - public string? bin { get; set; } - /// - ///The name of the company that issued the customer's credit card. + ///The name of payment method used by the buyer. /// - public string? company { get; set; } - /// - ///The response code from the credit card company indicating whether the customer entered the card security code, or card verification value, correctly. The code is a single letter or empty string. - /// - public string? cvvResultCode { get; set; } - /// - ///The month in which the used credit card expires. - /// - public int? expirationMonth { get; set; } - /// - ///The year in which the used credit card expires. - /// - public int? expirationYear { get; set; } - /// - ///The holder of the credit card. - /// - public string? name { get; set; } - /// - ///The customer's credit card number, with most of the leading digits redacted. - /// - public string? number { get; set; } - /// - ///Digital wallet used for the payment. - /// - public DigitalWallet? wallet { get; set; } + public string? paymentMethodName { get; set; } } /// @@ -32904,6 +35699,10 @@ public class PriceListPrice : GraphQLObject /// public MoneyV2? price { get; set; } /// + ///A list of quantity breaks for the product variant. + /// + public QuantityPriceBreakConnection? quantityPriceBreaks { get; set; } + /// ///The product variant associated with this price. /// public ProductVariant? variant { get; set; } @@ -33133,6 +35932,10 @@ public enum PriceListUserErrorCode /// CATALOG_CONTEXT_DOES_NOT_SUPPORT_QUANTITY_RULES, /// + ///Quantity price breaks can be associated only with company location catalogs. + /// + CATALOG_CONTEXT_DOES_NOT_SUPPORT_QUANTITY_PRICE_BREAKS, + /// ///Only one context rule option may be specified. /// CONTEXT_RULE_LIMIT_ONE_OPTION, @@ -34484,6 +37287,10 @@ public class Product : GraphQLObject, IHasMetafieldDefinitions, IHasMet /// public CollectionConnection? collections { get; set; } /// + ///The compare-at price range of the product in the default shop currency. + /// + public ProductCompareAtPriceRange? compareAtPriceRange { get; set; } + /// ///The pricing that applies for a customer in a given context. /// public ProductContextualPricing? contextualPricing { get; set; } @@ -34545,6 +37352,10 @@ public class Product : GraphQLObject, IHasMetafieldDefinitions, IHasMet /// public bool? hasOutOfStockVariants { get; set; } /// + ///Determines if at least one of the product variant requires components. The default value is `false`. + /// + public bool? hasVariantsThatRequiresComponents { get; set; } + /// ///A globally-unique ID. /// public string? id { get; set; } @@ -34890,6 +37701,21 @@ public enum ProductCollectionSortKeys RELEVANCE, } + /// + ///The compare-at price range of the product. + /// + public class ProductCompareAtPriceRange : GraphQLObject + { + /// + ///The highest variant's compare-at price. + /// + public MoneyV2? maxVariantCompareAtPrice { get; set; } + /// + ///The lowest variant's compare-at price. + /// + public MoneyV2? minVariantCompareAtPrice { get; set; } + } + /// ///An auto-generated type for paginating through multiple Products. /// @@ -36257,6 +39083,10 @@ public class ProductVariantContextualPricing : GraphQLObject public MoneyV2? price { get; set; } /// + ///A list of quantity breaks for the product variant. + /// + public QuantityPriceBreakConnection? quantityPriceBreaks { get; set; } + /// ///The quantity rule applied for a given context. /// public QuantityRule? quantityRule { get; set; } @@ -37562,6 +40392,273 @@ public interface IPurchasingEntity : IGraphQLObject public PurchasingCompany? AsPurchasingCompany() => this as PurchasingCompany; } + /// + ///Quantity price breaks lets you offer different rates that are based on the + ///amount of a specific variant being ordered. + /// + public class QuantityPriceBreak : GraphQLObject, INode + { + /// + ///A globally-unique ID. + /// + public string? id { get; set; } + /// + ///Minimum quantity required to reach new quantity break price. + /// + public int? minimumQuantity { get; set; } + /// + ///The price of variant after reaching the minimum quanity. + /// + public MoneyV2? price { get; set; } + /// + ///The price list associated with this quantity break. + /// + public PriceList? priceList { get; set; } + /// + ///The product variant associated with this quantity break. + /// + public ProductVariant? variant { get; set; } + } + + /// + ///An auto-generated type for paginating through multiple QuantityPriceBreaks. + /// + public class QuantityPriceBreakConnection : GraphQLObject, IConnectionWithNodesAndEdges + { + /// + ///A list of edges. + /// + public IEnumerable? edges { get; set; } + /// + ///A list of the nodes contained in QuantityPriceBreakEdge. + /// + public IEnumerable? nodes { get; set; } + /// + ///Information to aid in pagination. + /// + public PageInfo? pageInfo { get; set; } + /// + ///The total count of QuantityPriceBreaks. + /// + public ulong? totalCount { get; set; } + } + + /// + ///An auto-generated type which holds one QuantityPriceBreak and a cursor during pagination. + /// + public class QuantityPriceBreakEdge : GraphQLObject, IEdge + { + /// + ///A cursor for use in pagination. + /// + public string? cursor { get; set; } + /// + ///The item at the end of QuantityPriceBreakEdge. + /// + public QuantityPriceBreak? node { get; set; } + } + + /// + ///The set of valid sort keys for the QuantityPriceBreak query. + /// + public enum QuantityPriceBreakSortKeys + { + /// + ///Sort by the `minimum_quantity` value. + /// + MINIMUM_QUANTITY, + /// + ///Sort by the `id` value. + /// + ID, + /// + ///Sort by relevance to the search terms when the `query` parameter is specified on the connection. + ///Don't use this sort key when no search query is specified. + /// + RELEVANCE, + } + + /// + ///Return type for `quantityPricingByVariantUpdate` mutation. + /// + public class QuantityPricingByVariantUpdatePayload : GraphQLObject + { + /// + ///The variants for which quantity pricing was created successfully in the price list. + /// + public IEnumerable? productVariants { get; set; } + /// + ///The list of errors that occurred from executing the mutation. + /// + public IEnumerable? userErrors { get; set; } + } + + /// + ///Error codes for failed volume pricing operations. + /// + public class QuantityPricingByVariantUserError : GraphQLObject, IDisplayableError + { + /// + ///The error code. + /// + public QuantityPricingByVariantUserErrorCode? code { get; set; } + /// + ///The path to the input field that caused the error. + /// + public IEnumerable? field { get; set; } + /// + ///The error message. + /// + public string? message { get; set; } + } + + /// + ///Possible error codes that can be returned by `QuantityPricingByVariantUserError`. + /// + public enum QuantityPricingByVariantUserErrorCode + { + /// + ///The input value is blank. + /// + BLANK, + /// + ///Price List does not exist. + /// + PRICE_LIST_NOT_FOUND, + /// + ///Something went wrong when trying to update quantity pricing. Please try again later. + /// + GENERIC_ERROR, + /// + ///Invalid quantity price break. + /// + QUANTITY_PRICE_BREAK_ADD_INVALID, + /// + ///Quantity price break's fixed price not found. + /// + QUANTITY_PRICE_BREAK_ADD_PRICE_LIST_PRICE_NOT_FOUND, + /// + ///Exceeded the allowed number of quantity price breaks per variant. + /// + QUANTITY_PRICE_BREAK_ADD_LIMIT_EXCEEDED, + /// + ///Price list and quantity price break currency mismatch. + /// + QUANTITY_PRICE_BREAK_ADD_CURRENCY_MISMATCH, + /// + ///Failed to save quantity price break. + /// + QUANTITY_PRICE_BREAK_ADD_FAILED_TO_SAVE, + /// + ///Quantity price break miniumum is less than the quantity rule minimum. + /// + QUANTITY_PRICE_BREAK_ADD_MIN_LOWER_THAN_QUANTITY_RULES_MIN, + /// + ///Quantity price break miniumum is higher than the quantity rule maximum. + /// + QUANTITY_PRICE_BREAK_ADD_MIN_HIGHER_THAN_QUANTITY_RULES_MAX, + /// + ///Quantity price break miniumum is not multiple of the quantity rule increment. + /// + QUANTITY_PRICE_BREAK_ADD_MIN_NOT_A_MULTIPLE_OF_QUANTITY_RULES_INCREMENT, + /// + ///Quantity price break variant not found. + /// + QUANTITY_PRICE_BREAK_ADD_VARIANT_NOT_FOUND, + /// + ///Quantity price breaks to add inputs must be unique by variant id and minimum quantity. + /// + QUANTITY_PRICE_BREAK_ADD_DUPLICATE_INPUT_FOR_VARIANT_AND_MIN, + /// + ///Quantity price break not found. + /// + QUANTITY_PRICE_BREAK_DELETE_NOT_FOUND, + /// + ///Failed to delete quantity price break. + /// + QUANTITY_PRICE_BREAK_DELETE_FAILED, + /// + ///Quantity rule variant not found. + /// + QUANTITY_RULE_ADD_VARIANT_NOT_FOUND, + /// + ///Quantity rule minimum is higher than the quantity price break minimum. + /// + QUANTITY_RULE_ADD_MIN_HIGHER_THAN_QUANTITY_PRICE_BREAK_MIN, + /// + ///Quantity rule maximum is less than the quantity price break minimum. + /// + QUANTITY_RULE_ADD_MAX_LOWER_THAN_QUANTITY_PRICE_BREAK_MIN, + /// + ///Quantity rule increment must be a multiple of the quantity price break minimum. + /// + QUANTITY_RULE_ADD_INCREMENT_NOT_A_MULTIPLE_OF_QUANTITY_PRICE_BREAK_MIN, + /// + ///Quantity rule catalog context not supported. + /// + QUANTITY_RULE_ADD_CATALOG_CONTEXT_NOT_SUPPORTED, + /// + ///Quantity rule increment is greater than minimum. + /// + QUANTITY_RULE_ADD_INCREMENT_IS_GREATER_THAN_MINIMUM, + /// + ///Quantity rule minimum is not a multiple of increment. + /// + QUANTITY_RULE_ADD_MINIMUM_NOT_A_MULTIPLE_OF_INCREMENT, + /// + ///Quantity rule maximum is not a multiple of increment. + /// + QUANTITY_RULE_ADD_MAXIMUM_NOT_A_MULTIPLE_OF_INCREMENT, + /// + ///Quantity rule minimum is greater than maximum. + /// + QUANTITY_RULE_ADD_MINIMUM_GREATER_THAN_MAXIMUM, + /// + ///Quantity rule increment is less than one. + /// + QUANTITY_RULE_ADD_INCREMENT_IS_LESS_THAN_ONE, + /// + ///Quantity rule minimum is less than one. + /// + QUANTITY_RULE_ADD_MINIMUM_IS_LESS_THAN_ONE, + /// + ///Quantity rule maximum is less than one. + /// + QUANTITY_RULE_ADD_MAXIMUM_IS_LESS_THAN_ONE, + /// + ///Quantity rules to add inputs must be unique by variant id. + /// + QUANTITY_RULE_ADD_DUPLICATE_INPUT_FOR_VARIANT, + /// + ///Quantity rule not found. + /// + QUANTITY_RULE_DELETE_RULE_NOT_FOUND, + /// + ///Quantity rule variant not found. + /// + QUANTITY_RULE_DELETE_VARIANT_NOT_FOUND, + /// + ///Price list and fixed price currency mismatch. + /// + PRICE_ADD_CURRENCY_MISMATCH, + /// + ///Fixed price's variant not found. + /// + PRICE_ADD_VARIANT_NOT_FOUND, + /// + ///Prices to add inputs must be unique by variant id. + /// + PRICE_ADD_DUPLICATE_INPUT_FOR_VARIANT, + /// + ///Price is not fixed. + /// + PRICE_DELETE_PRICE_NOT_FIXED, + /// + ///Fixed price's variant not found. + /// + PRICE_DELETE_VARIANT_NOT_FOUND, + } + /// ///The quantity rule for the product variant in a given context. /// @@ -37617,7 +40714,7 @@ public class QuantityRuleConnection : GraphQLObject, ICo /// public PageInfo? pageInfo { get; set; } /// - ///The total count of QuantityRules. Note: The maximum count limit is 10000. + ///The total count of QuantityRules. /// public ulong? totalCount { get; set; } } @@ -37697,6 +40794,18 @@ public enum QuantityRuleUserErrorCode /// MINIMUM_IS_GREATER_THAN_MAXIMUM, /// + ///Minimum must be less than or equal to all quantity price break minimums associated with this variant in the specified price list. + /// + MINIMUM_IS_HIGHER_THAN_QUANTITY_PRICE_BREAK_MINIMUM, + /// + ///Maximum must be greater than or equal to all quantity price break minimums associated with this variant in the specified price list. + /// + MAXIMUM_IS_LOWER_THAN_QUANTITY_PRICE_BREAK_MINIMUM, + /// + ///Increment must be a multiple of all quantity price break minimums associated with this variant in the specified price list. + /// + INCREMENT_NOT_A_MULTIPLE_OF_QUANTITY_PRICE_BREAK_MINIMUM, + /// ///Increment must be lower than or equal to the minimum. /// INCREMENT_IS_GREATER_THAN_MINIMUM, @@ -37717,6 +40826,10 @@ public enum QuantityRuleUserErrorCode /// CATALOG_CONTEXT_DOES_NOT_SUPPORT_QUANTITY_RULES, /// + ///Quantity rule inputs must be unique by variant id. + /// + DUPLICATE_INPUT_FOR_VARIANT, + /// ///Something went wrong when trying to save the quantity rule. Please try again later. /// GENERIC_ERROR, @@ -37860,6 +40973,10 @@ public class QueryRoot : GraphQLObject [Obsolete("Use `publications` instead.")] public ChannelConnection? channels { get; set; } /// + ///Returns the checkout branding settings for a checkout profile. + /// + public CheckoutBranding? checkoutBranding { get; set; } + /// ///A checkout profile on a shop. /// public CheckoutProfile? checkoutProfile { get; set; } @@ -38058,6 +41175,10 @@ public class QueryRoot : GraphQLObject /// public Fulfillment? fulfillment { get; set; } /// + ///The fulfillment constraint rules that belong to a shop. + /// + public IEnumerable? fulfillmentConstraintRules { get; set; } + /// ///Returns a Fulfillment order resource by ID. /// public FulfillmentOrder? fulfillmentOrder { get; set; } @@ -38178,10 +41299,6 @@ public class QueryRoot : GraphQLObject /// public MarketConnection? markets { get; set; } /// - ///Returns a metafield by ID. - /// - public Metafield? metafield { get; set; } - /// ///Returns a metafield definition by ID. /// public MetafieldDefinition? metafieldDefinition { get; set; } @@ -38555,6 +41672,14 @@ public class QueryRoot : GraphQLObject /// public UrlRedirectConnection? urlRedirects { get; set; } /// + ///Validation available on the shop. + /// + public Validation? validation { get; set; } + /// + ///Validations available on the shop. + /// + public ValidationConnection? validations { get; set; } + /// ///The web pixel configured by the app. /// public WebPixel? webPixel { get; set; } @@ -38997,29 +42122,6 @@ public enum ResourceFeedbackState REQUIRES_ACTION, } - /// - ///A resource limit represents the limits that the resource has. - /// - public class ResourceLimit : GraphQLObject - { - /// - ///Whether the resource is available. - /// - public bool? available { get; set; } - /// - ///Quantity available. If null the quantity available is unlimited. - /// - public int? quantityAvailable { get; set; } - /// - ///Quantity limit of the resource. If null the quantity is unlimited. - /// - public int? quantityLimit { get; set; } - /// - ///Quantity used of the resource. If null the quantity used can't be retrieved. - /// - public int? quantityUsed { get; set; } - } - /// ///Represents a merchandising background operation interface. /// @@ -39239,7 +42341,7 @@ public class Return : GraphQLObject, INode /// public SuggestedReturnRefund? suggestedRefund { get; set; } /// - ///The sum of all line item quantities for the return. Includes the total quantity of both return line items and exchange line items. + ///The sum of all return line item quantities for the return. /// public int? totalQuantity { get; set; } } @@ -40710,6 +43812,26 @@ public class SavedSearchUpdatePayload : GraphQLObject public IEnumerable? userErrors { get; set; } } + /// + ///The set of valid sort keys for the ScheduledChange query. + /// + public enum ScheduledChangeSortKeys + { + /// + ///Sort by the `expected_at` value. + /// + EXPECTED_AT, + /// + ///Sort by the `id` value. + /// + ID, + /// + ///Sort by relevance to the search terms when the `query` parameter is specified on the connection. + ///Don't use this sort key when no search query is specified. + /// + RELEVANCE, + } + /// ///Script discount applications capture the intentions of a discount that ///was created by a Shopify Script for an order's line item or shipping line. @@ -41009,6 +44131,10 @@ public enum SearchResultType /// DISCOUNT_REDEEM_CODE, ORDER, + /// + ///A balance transaction. + /// + BALANCE_TRANSACTION, } /// @@ -42490,6 +45616,14 @@ public enum SellingPlanGroupUserErrorCode ///A selling plan can't have both fixed and recurring delivery policies. /// ONLY_ONE_OF_FIXED_OR_RECURRING_DELIVERY, + /// + ///Billing policy's interval is too large. + /// + BILLING_POLICY_INTERVAL_TOO_LARGE, + /// + ///Delivery policy's interval is too large. + /// + DELIVERY_POLICY_INTERVAL_TOO_LARGE, } /// @@ -42714,7 +45848,7 @@ public enum SellingPlanRecurringDeliveryPolicyPreAnchorBehavior } /// - ///Represents a recurring selling plan pricing policy. + ///Represents a recurring selling plan pricing policy. It applies after the fixed pricing policy. By using the afterCycle parameter, you can specify the cycle when the recurring pricing policy comes into effect. Recurring pricing policies are not available for deferred purchase options. /// public class SellingPlanRecurringPricingPolicy : GraphQLObject, ISellingPlanPricingPolicyBase, ISellingPlanPricingPolicy { @@ -43256,6 +46390,10 @@ public class Shop : GraphQLObject, IHasMetafields, IHasPublishedTranslatio ///Whether customer accounts are required, optional, or disabled for the shop. /// public ShopCustomerAccountsSetting? customerAccounts { get; set; } + /// + ///Information about the shop's customer accounts. + /// + public CustomerAccountsV2? customerAccountsV2 { get; set; } /// ///List of the shop's customer saved searches. @@ -43514,12 +46652,6 @@ public class Shop : GraphQLObject, IHasMetafields, IHasPublishedTranslatio ///The list of all legal policies associated with a shop. /// public IEnumerable? shopPolicies { get; set; } - - /// - ///Shopify Payments account information, including balances and payouts. - /// - [Obsolete("Use `QueryRoot.shopifyPaymentsAccount` instead.")] - public ShopifyPaymentsAccount? shopifyPaymentsAccount { get; set; } /// ///The paginated list of the shop's staff members. /// @@ -43785,6 +46917,10 @@ public class ShopFeatures : GraphQLObject ///Whether a shop's online store can have CAPTCHA protection for domains not managed by Shopify. /// public bool? captchaExternalDomains { get; set; } + /// + ///Represents the cart transform feature configuration for the shop. + /// + public CartTransformFeature? cartTransform { get; set; } /// ///Whether the delivery profiles functionality is enabled for this shop. @@ -43812,9 +46948,11 @@ public class ShopFeatures : GraphQLObject ///internationally. /// public bool? harmonizedSystemCode { get; set; } + /// ///Whether a shop can enable international domains. /// + [Obsolete("All shops have international domains through Shopify Markets.")] public bool? internationalDomains { get; set; } /// ///Whether a shop can enable international price overrides. @@ -43947,6 +47085,17 @@ public class ShopLocaleUpdatePayload : GraphQLObject public IEnumerable? userErrors { get; set; } } + /// + ///Shop Pay Installments payment details related to a transaction. + /// + public class ShopPayInstallmentsPaymentDetails : GraphQLObject, IBasePaymentDetails, IPaymentDetails + { + /// + ///The name of payment method used by the buyer. + /// + public string? paymentMethodName { get; set; } + } + /// ///The billing plan of the shop. /// @@ -44155,12 +47304,6 @@ public class ShopResourceLimits : GraphQLObject ///Whether the shop has reached the limit of the number of URL redirects it can make for resources. /// public bool? redirectLimitReached { get; set; } - - /// - ///The maximum number of variants allowed per shop. If the shop has unlimited SKUs, then the quantity used can't be retrieved. - /// - [Obsolete("This field is deprecated. After the 2023-10 version, we no longer set limits on number of SKUs per shop. Use `maxProductVariants` instead.")] - public ResourceLimit? skuResourceLimits { get; set; } } /// @@ -44276,6 +47419,10 @@ public class ShopifyPaymentsAccount : GraphQLObject, INo /// public IEnumerable? balance { get; set; } /// + ///A list of balance transactions associated with the shop. + /// + public ShopifyPaymentsBalanceTransactionConnection? balanceTransactions { get; set; } + /// ///All bank accounts configured for the Shopify Payments account. /// public ShopifyPaymentsBankAccountConnection? bankAccounts { get; set; } @@ -44345,6 +47492,82 @@ public class ShopifyPaymentsAccount : GraphQLObject, INo public IEnumerable? verifications { get; set; } } + /// + ///The adjustment order object. + /// + public class ShopifyPaymentsAdjustmentOrder : GraphQLObject + { + /// + ///The amount of the adjustment order. + /// + public MoneyV2? amount { get; set; } + /// + ///The link to the adjustment order. + /// + public string? link { get; set; } + /// + ///The name of the adjustment order. + /// + public string? name { get; set; } + } + + /// + ///A transaction that contributes to a Shopify Payments account balance. + /// + public class ShopifyPaymentsBalanceTransaction : GraphQLObject, INode + { + /// + ///The adjustment orders associated to the transaction. + /// + public IEnumerable? adjustmentsOrders { get; set; } + /// + ///A globally-unique ID. + /// + public string? id { get; set; } + /// + ///The net amount contributing to the merchant's balance. + /// + public MoneyV2? net { get; set; } + /// + ///The date and time when the balance transaction was processed. + /// + public DateTime? transactionDate { get; set; } + } + + /// + ///An auto-generated type for paginating through multiple ShopifyPaymentsBalanceTransactions. + /// + public class ShopifyPaymentsBalanceTransactionConnection : GraphQLObject, IConnectionWithNodesAndEdges + { + /// + ///A list of edges. + /// + public IEnumerable? edges { get; set; } + /// + ///A list of the nodes contained in ShopifyPaymentsBalanceTransactionEdge. + /// + public IEnumerable? nodes { get; set; } + /// + ///Information to aid in pagination. + /// + public PageInfo? pageInfo { get; set; } + } + + /// + ///An auto-generated type which holds one ShopifyPaymentsBalanceTransaction and a cursor during pagination. + /// + public class ShopifyPaymentsBalanceTransactionEdge : GraphQLObject, IEdge + { + /// + ///A cursor for use in pagination. + /// + public string? cursor { get; set; } + /// + ///The item at the end of ShopifyPaymentsBalanceTransactionEdge. + /// + public ShopifyPaymentsBalanceTransaction? node { get; set; } + } + /// ///A bank account that can receive payouts. /// @@ -45234,6 +48457,80 @@ public class ShopifyPaymentsVerificationSubject : GraphQLObject + ///The status of an order's eligibility for protection against fraudulent chargebacks by Shopify Protect. + /// + public enum ShopifyProtectEligibilityStatus + { + /// + ///The eligibility of the order is pending and has not yet been determined. + /// + PENDING, + /// + ///The order is eligible for protection against fraudulent chargebacks. + ///If an order is updated, the order's eligibility may change and protection could be removed. + /// + ELIGIBLE, + /// + ///The order isn't eligible for protection against fraudulent chargebacks. + /// + NOT_ELIGIBLE, + } + + /// + ///The eligibility details of an order's protection against fraudulent chargebacks by Shopify Protect. + /// + public class ShopifyProtectOrderEligibility : GraphQLObject + { + /// + ///The status of whether an order is eligible for protection against fraudulent chargebacks. + /// + public ShopifyProtectEligibilityStatus? status { get; set; } + } + + /// + ///A summary of Shopify Protect details for an order. + /// + public class ShopifyProtectOrderSummary : GraphQLObject + { + /// + ///The eligibility details of an order's protection against fraudulent chargebacks. + /// + public ShopifyProtectOrderEligibility? eligibility { get; set; } + /// + ///The status of the order's protection against fraudulent chargebacks. + /// + public ShopifyProtectStatus? status { get; set; } + } + + /// + ///The status of an order's protection with Shopify Protect. + /// + public enum ShopifyProtectStatus + { + /// + ///The protection for the order is pending and has not yet been determined. + /// + PENDING, + /// + ///The protection for the order is active and eligible for reimbursement against fraudulent chargebacks. + ///If an order is updated, the order's eligibility may change and protection could become inactive. + /// + ACTIVE, + /// + ///The protection for an order isn't active because the order didn't meet eligibility requirements. + /// + INACTIVE, + /// + ///The order received a fraudulent chargeback and it was protected. + /// + PROTECTED, + /// + ///The order received a chargeback but the order wasn't protected because it didn't meet coverage requirements. + /// + NOT_PROTECTED, + } + /// ///A response to a ShopifyQL query. /// @@ -46561,6 +49858,96 @@ public class SubscriptionBillingCycleScheduleEditPayload : GraphQLObject? userErrors { get; set; } } + /// + ///Return type for `subscriptionBillingCycleSkip` mutation. + /// + public class SubscriptionBillingCycleSkipPayload : GraphQLObject + { + /// + ///The updated billing cycle. + /// + public SubscriptionBillingCycle? billingCycle { get; set; } + /// + ///The list of errors that occurred from executing the mutation. + /// + public IEnumerable? userErrors { get; set; } + } + + /// + ///An error that occurs during the execution of `SubscriptionBillingCycleSkip`. + /// + public class SubscriptionBillingCycleSkipUserError : GraphQLObject, IDisplayableError + { + /// + ///The error code. + /// + public SubscriptionBillingCycleSkipUserErrorCode? code { get; set; } + /// + ///The path to the input field that caused the error. + /// + public IEnumerable? field { get; set; } + /// + ///The error message. + /// + public string? message { get; set; } + } + + /// + ///Possible error codes that can be returned by `SubscriptionBillingCycleSkipUserError`. + /// + public enum SubscriptionBillingCycleSkipUserErrorCode + { + /// + ///The input value is invalid. + /// + INVALID, + } + + /// + ///Return type for `subscriptionBillingCycleUnskip` mutation. + /// + public class SubscriptionBillingCycleUnskipPayload : GraphQLObject + { + /// + ///The updated billing cycle. + /// + public SubscriptionBillingCycle? billingCycle { get; set; } + /// + ///The list of errors that occurred from executing the mutation. + /// + public IEnumerable? userErrors { get; set; } + } + + /// + ///An error that occurs during the execution of `SubscriptionBillingCycleUnskip`. + /// + public class SubscriptionBillingCycleUnskipUserError : GraphQLObject, IDisplayableError + { + /// + ///The error code. + /// + public SubscriptionBillingCycleUnskipUserErrorCode? code { get; set; } + /// + ///The path to the input field that caused the error. + /// + public IEnumerable? field { get; set; } + /// + ///The error message. + /// + public string? message { get; set; } + } + + /// + ///Possible error codes that can be returned by `SubscriptionBillingCycleUnskipUserError`. + /// + public enum SubscriptionBillingCycleUnskipUserErrorCode + { + /// + ///The input value is invalid. + /// + INVALID, + } + /// ///The possible errors for a subscription billing cycle. /// @@ -46712,7 +50099,10 @@ public class SubscriptionContract : GraphQLObject, INode, /// public SubscriptionLineConnection? lines { get; set; } /// - ///The next billing date for the subscription contract. + ///The next billing date for the subscription contract. This field is managed by the apps. + /// Alternatively you can utilize our + /// [Billing Cycles APIs](https://shopify.dev/docs/apps/selling-strategies/subscriptions/billing-cycles), + /// which provide auto-computed billing dates and additional functionalities. /// public DateTime? nextBillingDate { get; set; } /// @@ -46741,6 +50131,21 @@ public class SubscriptionContract : GraphQLObject, INode, public DateTime? updatedAt { get; set; } } + /// + ///Return type for `subscriptionContractActivate` mutation. + /// + public class SubscriptionContractActivatePayload : GraphQLObject + { + /// + ///The new Subscription Contract object. + /// + public SubscriptionContract? contract { get; set; } + /// + ///The list of errors that occurred from executing the mutation. + /// + public IEnumerable? userErrors { get; set; } + } + /// ///Return type for `subscriptionContractAtomicCreate` mutation. /// @@ -46824,6 +50229,21 @@ public interface ISubscriptionContractBase : IGraphQLObject public DateTime? updatedAt { get; } } + /// + ///Return type for `subscriptionContractCancel` mutation. + /// + public class SubscriptionContractCancelPayload : GraphQLObject + { + /// + ///The new Subscription Contract object. + /// + public SubscriptionContract? contract { get; set; } + /// + ///The list of errors that occurred from executing the mutation. + /// + public IEnumerable? userErrors { get; set; } + } + /// ///An auto-generated type for paginating through multiple SubscriptionContracts. /// @@ -46884,6 +50304,36 @@ public enum SubscriptionContractErrorCode INVALID, } + /// + ///Return type for `subscriptionContractExpire` mutation. + /// + public class SubscriptionContractExpirePayload : GraphQLObject + { + /// + ///The new Subscription Contract object. + /// + public SubscriptionContract? contract { get; set; } + /// + ///The list of errors that occurred from executing the mutation. + /// + public IEnumerable? userErrors { get; set; } + } + + /// + ///Return type for `subscriptionContractFail` mutation. + /// + public class SubscriptionContractFailPayload : GraphQLObject + { + /// + ///The new Subscription Contract object. + /// + public SubscriptionContract? contract { get; set; } + /// + ///The list of errors that occurred from executing the mutation. + /// + public IEnumerable? userErrors { get; set; } + } + /// ///The possible status values of the last payment on a subscription contract. /// @@ -46899,6 +50349,21 @@ public enum SubscriptionContractLastPaymentStatus FAILED, } + /// + ///Return type for `subscriptionContractPause` mutation. + /// + public class SubscriptionContractPausePayload : GraphQLObject + { + /// + ///The new Subscription Contract object. + /// + public SubscriptionContract? contract { get; set; } + /// + ///The list of errors that occurred from executing the mutation. + /// + public IEnumerable? userErrors { get; set; } + } + /// ///Return type for `subscriptionContractProductChange` mutation. /// @@ -46933,6 +50398,40 @@ public class SubscriptionContractSetNextBillingDatePayload : GraphQLObject? userErrors { get; set; } } + /// + ///Possible error codes that can be returned by `SubscriptionContractStatusUpdateUserError`. + /// + public enum SubscriptionContractStatusUpdateErrorCode + { + /// + ///The input value is invalid. + /// + INVALID, + /// + ///Subscription contract status cannot be changed once terminated. + /// + CONTRACT_TERMINATED, + } + + /// + ///Represents a subscription contract status update error. + /// + public class SubscriptionContractStatusUpdateUserError : GraphQLObject, IDisplayableError + { + /// + ///The error code. + /// + public SubscriptionContractStatusUpdateErrorCode? code { get; set; } + /// + ///The path to the input field that caused the error. + /// + public IEnumerable? field { get; set; } + /// + ///The error message. + /// + public string? message { get; set; } + } + /// ///The possible status values of a subscription. /// @@ -46958,10 +50457,6 @@ public enum SubscriptionContractSubscriptionStatus ///The contract ended because billing failed and no further billing attempts are expected. /// FAILED, - /// - ///The contract has expired due to inactivity. - /// - STALE, } /// @@ -48390,6 +51885,10 @@ public class SuggestedOrderTransaction : GraphQLObject public OrderTransaction? parentTransaction { get; set; } + /// + ///The associated payment details related to the transaction. + /// + public IPaymentDetails? paymentDetails { get; set; } } /// @@ -49358,7 +52857,7 @@ public enum TranslatableResourceType /// PAYMENT_GATEWAY, /// - ///An online store product. Translatable fields: `title`, `body_html`, `handle`, `meta_title`, `meta_description`. + ///An online store product. Translatable fields: `title`, `body_html`, `handle`, `product_type`, `meta_title`, `meta_description`. /// PRODUCT, /// @@ -49367,7 +52866,7 @@ public enum TranslatableResourceType /// PRODUCT_OPTION, /// - ///An online store product variant. Translatable fields: `title`, `option1`, `option2`, `option3`. The field `title` has been deprecated. + ///An online store product variant. Translatable fields: `option1`, `option2`, `option3`. /// PRODUCT_VARIANT, /// @@ -50108,6 +53607,250 @@ public class UserError : GraphQLObject, IDisplayableError public string? message { get; set; } } + /// + ///A checkout server side validation installed on the shop. + /// + public class Validation : GraphQLObject, IHasMetafieldDefinitions, IHasMetafields, INode + { + /// + ///Whether the validation should block on failures other than expected violations. + /// + public bool? blockOnFailure { get; set; } + /// + ///Whether the validation is enabled on the merchant checkout. + /// + public bool? enabled { get; set; } + /// + ///The error history on the most recent version of the validation function. + /// + public FunctionsErrorHistory? errorHistory { get; set; } + /// + ///Global ID for the validation. + /// + public string? id { get; set; } + /// + ///Returns a metafield by namespace and key that belongs to the resource. + /// + public Metafield? metafield { get; set; } + /// + ///List of metafield definitions. + /// + public MetafieldDefinitionConnection? metafieldDefinitions { get; set; } + /// + ///List of metafields that belong to the resource. + /// + public MetafieldConnection? metafields { get; set; } + + /// + ///Returns a private metafield by namespace and key that belongs to the resource. + /// + [Obsolete("Metafields created using a reserved namespace are private by default. See our guide for\n[migrating private metafields](https://shopify.dev/docs/apps/custom-data/metafields/migrate-private-metafields).")] + public PrivateMetafield? privateMetafield { get; set; } + + /// + ///List of private metafields that belong to the resource. + /// + [Obsolete("Metafields created using a reserved namespace are private by default. See our guide for\n[migrating private metafields](https://shopify.dev/docs/apps/custom-data/metafields/migrate-private-metafields).")] + public PrivateMetafieldConnection? privateMetafields { get; set; } + /// + ///The Shopify Function implementing the validation. + /// + public ShopifyFunction? shopifyFunction { get; set; } + /// + ///The merchant-facing validation name. + /// + public string? title { get; set; } + } + + /// + ///An auto-generated type for paginating through multiple Validations. + /// + public class ValidationConnection : GraphQLObject, IConnectionWithNodesAndEdges + { + /// + ///A list of edges. + /// + public IEnumerable? edges { get; set; } + /// + ///A list of the nodes contained in ValidationEdge. + /// + public IEnumerable? nodes { get; set; } + /// + ///Information to aid in pagination. + /// + public PageInfo? pageInfo { get; set; } + } + + /// + ///Return type for `validationCreate` mutation. + /// + public class ValidationCreatePayload : GraphQLObject + { + /// + ///The list of errors that occurred from executing the mutation. + /// + public IEnumerable? userErrors { get; set; } + /// + ///The created validation. + /// + public Validation? validation { get; set; } + } + + /// + ///Return type for `validationDelete` mutation. + /// + public class ValidationDeletePayload : GraphQLObject + { + /// + ///Returns the deleted validation ID. + /// + public string? deletedId { get; set; } + /// + ///The list of errors that occurred from executing the mutation. + /// + public IEnumerable? userErrors { get; set; } + } + + /// + ///An auto-generated type which holds one Validation and a cursor during pagination. + /// + public class ValidationEdge : GraphQLObject, IEdge + { + /// + ///A cursor for use in pagination. + /// + public string? cursor { get; set; } + /// + ///The item at the end of ValidationEdge. + /// + public Validation? node { get; set; } + } + + /// + ///The set of valid sort keys for the Validation query. + /// + public enum ValidationSortKeys + { + /// + ///Sort by the `id` value. + /// + ID, + /// + ///Sort by relevance to the search terms when the `query` parameter is specified on the connection. + ///Don't use this sort key when no search query is specified. + /// + RELEVANCE, + } + + /// + ///Return type for `validationUpdate` mutation. + /// + public class ValidationUpdatePayload : GraphQLObject + { + /// + ///The list of errors that occurred from executing the mutation. + /// + public IEnumerable? userErrors { get; set; } + /// + ///The updated validation. + /// + public Validation? validation { get; set; } + } + + /// + ///An error that occurs during the execution of a validation mutation. + /// + public class ValidationUserError : GraphQLObject, IDisplayableError + { + /// + ///The error code. + /// + public ValidationUserErrorCode? code { get; set; } + /// + ///The path to the input field that caused the error. + /// + public IEnumerable? field { get; set; } + /// + ///The error message. + /// + public string? message { get; set; } + } + + /// + ///Possible error codes that can be returned by `ValidationUserError`. + /// + public enum ValidationUserErrorCode + { + /// + ///Validation not found. + /// + NOT_FOUND, + /// + ///Function not found. + /// + FUNCTION_NOT_FOUND, + /// + ///Shop must be on a Shopify Plus plan to activate functions from a custom app. + /// + CUSTOM_APP_FUNCTION_NOT_ELIGIBLE, + /// + ///Function does not implement the required interface for this cart & checkout validation. + /// + FUNCTION_DOES_NOT_IMPLEMENT, + /// + ///Only unlisted apps can be used for this cart & checkout validation. + /// + PUBLIC_APP_NOT_ALLOWED, + /// + ///Function is pending deletion. + /// + FUNCTION_PENDING_DELETION, + /// + ///The type is invalid. + /// + INVALID_TYPE, + /// + ///The value is invalid for the metafield type or for the definition options. + /// + INVALID_VALUE, + /// + ///ApiPermission metafields can only be created or updated by the app owner. + /// + APP_NOT_AUTHORIZED, + /// + ///Unstructured reserved namespace. + /// + UNSTRUCTURED_RESERVED_NAMESPACE, + /// + ///Owner type can't be used in this mutation. + /// + DISALLOWED_OWNER_TYPE, + /// + ///The input value isn't included in the list. + /// + INCLUSION, + /// + ///The input value is already taken. + /// + TAKEN, + /// + ///The input value needs to be blank. + /// + PRESENT, + /// + ///The input value is blank. + /// + BLANK, + /// + ///The input value is too long. + /// + TOO_LONG, + /// + ///The input value is too short. + /// + TOO_SHORT, + } + /// ///Represents a credit card payment instrument. /// @@ -50455,6 +54198,10 @@ public class WebhookSubscription : GraphQLObject, ILegacyIn [Obsolete("Metafields created using a reserved namespace are private by default. See our guide for\n[migrating private metafields](https://shopify.dev/docs/apps/custom-data/metafields/migrate-private-metafields).")] public IEnumerable? privateMetafieldNamespaces { get; set; } /// + ///An additional constraint to refine the type of event that triggers the webhook. Only supported on certain topics. See our guide to [sub-topics](https://shopify.dev/docs/apps/webhooks/sub-topics) for more. + /// + public string? subTopic { get; set; } + /// ///The type of event that triggers the webhook. The topic determines when the webhook subscription sends a webhook, as well as what class of data object that webhook contains. /// public WebhookSubscriptionTopic? topic { get; set; } @@ -50854,6 +54601,14 @@ public enum WebhookSubscriptionTopic /// FULFILLMENT_ORDERS_PLACED_ON_HOLD, /// + ///The webhook topic for `fulfillment_orders/merged` events. Occurs when multiple fulfillment orders are merged into a single fulfillment order. Requires at least one of the following scopes: read_merchant_managed_fulfillment_orders, read_assigned_fulfillment_orders, read_third_party_fulfillment_orders. + /// + FULFILLMENT_ORDERS_MERGED, + /// + ///The webhook topic for `fulfillment_orders/split` events. Occurs when a fulfillment order is split into multiple fulfillment orders. Requires at least one of the following scopes: read_merchant_managed_fulfillment_orders, read_assigned_fulfillment_orders, read_third_party_fulfillment_orders. + /// + FULFILLMENT_ORDERS_SPLIT, + /// ///The webhook topic for `product_listings/add` events. Occurs whenever an active product is listed on a channel. Requires the `read_product_listings` scope. /// PRODUCT_LISTINGS_ADD, @@ -51187,10 +54942,23 @@ public enum WebhookSubscriptionTopic /// MARKETS_DELETE, /// - ///The webhook topic for `fulfillment_orders/rescheduled` events. Triggers when a fulfillment order is rescheduled Requires at least one of the following scopes: read_merchant_managed_fulfillment_orders, read_assigned_fulfillment_orders, read_third_party_fulfillment_orders. + ///The webhook topic for `orders/shopify_protect_eligibility_changed` events. Occurs whenever Shopify Protect's eligibility for an order is changed. Requires the `read_orders` scope. + /// + ORDERS_SHOPIFY_PROTECT_ELIGIBILITY_CHANGED, + /// + ///The webhook topic for `fulfillment_orders/rescheduled` events. Triggers when a fulfillment order is rescheduled. + /// + ///Fulfillment orders may be merged if they have the same `fulfillAt` datetime. + ///If the fulfillment order is merged then the resulting fulfillment order will be indicated in the webhook body. + ///Otherwise it will be the original fulfillment order with an updated `fulfill_at` datetime. + /// Requires at least one of the following scopes: read_merchant_managed_fulfillment_orders, read_assigned_fulfillment_orders, read_third_party_fulfillment_orders. /// FULFILLMENT_ORDERS_RESCHEDULED, /// + ///The webhook topic for `publications/delete` events. Occurs whenever a publication is deleted. Requires the `read_publications` scope. + /// + PUBLICATIONS_DELETE, + /// ///The webhook topic for `audit_events/admin_api_activity` events. Triggers for each auditable Admin API request. This topic is limited to one active subscription per Plus store and requires the use of Google Cloud Pub/Sub or AWS EventBridge. Requires the `read_audit_events` scope. /// AUDIT_EVENTS_ADMIN_API_ACTIVITY, @@ -51246,6 +55014,66 @@ public enum WebhookSubscriptionTopic ///The webhook topic for `company_contact_roles/revoke` events. Occurs whenever a role is revoked from a contact at a location. Requires the `read_customers` scope. /// COMPANY_CONTACT_ROLES_REVOKE, + /// + ///The webhook topic for `subscription_contracts/activate` events. Occurs when a subscription contract is activated. Requires the `read_own_subscription_contracts` scope. + /// + SUBSCRIPTION_CONTRACTS_ACTIVATE, + /// + ///The webhook topic for `subscription_contracts/pause` events. Occurs when a subscription contract is paused. Requires the `read_own_subscription_contracts` scope. + /// + SUBSCRIPTION_CONTRACTS_PAUSE, + /// + ///The webhook topic for `subscription_contracts/cancel` events. Occurs when a subscription contract is canceled. Requires the `read_own_subscription_contracts` scope. + /// + SUBSCRIPTION_CONTRACTS_CANCEL, + /// + ///The webhook topic for `subscription_contracts/fail` events. Occurs when a subscription contract is failed. Requires the `read_own_subscription_contracts` scope. + /// + SUBSCRIPTION_CONTRACTS_FAIL, + /// + ///The webhook topic for `subscription_contracts/expire` events. Occurs when a subscription contract expires. Requires the `read_own_subscription_contracts` scope. + /// + SUBSCRIPTION_CONTRACTS_EXPIRE, + /// + ///The webhook topic for `subscription_billing_cycles/skip` events. Occurs whenever a subscription contract billing cycle is skipped. Requires the `read_own_subscription_contracts` scope. + /// + SUBSCRIPTION_BILLING_CYCLES_SKIP, + /// + ///The webhook topic for `subscription_billing_cycles/unskip` events. Occurs whenever a subscription contract billing cycle is unskipped. Requires the `read_own_subscription_contracts` scope. + /// + SUBSCRIPTION_BILLING_CYCLES_UNSKIP, + /// + ///The webhook topic for `metaobjects/create` events. Occurs when a metaobject is created. Requires the `read_metaobjects` scope. + /// + METAOBJECTS_CREATE, + /// + ///The webhook topic for `metaobjects/update` events. Occurs when a metaobject is updated. Requires the `read_metaobjects` scope. + /// + METAOBJECTS_UPDATE, + /// + ///The webhook topic for `metaobjects/delete` events. Occurs when a metaobject is deleted. Requires the `read_metaobjects` scope. + /// + METAOBJECTS_DELETE, + /// + ///The webhook topic for `discounts/create` events. Occurs whenever a discount is created. Requires the `read_discounts` scope. + /// + DISCOUNTS_CREATE, + /// + ///The webhook topic for `discounts/update` events. Occurs whenever a discount is updated. Requires the `read_discounts` scope. + /// + DISCOUNTS_UPDATE, + /// + ///The webhook topic for `discounts/delete` events. Occurs whenever a discount is deleted. Requires the `read_discounts` scope. + /// + DISCOUNTS_DELETE, + /// + ///The webhook topic for `discounts/redeemcode_added` events. Occurs whenever a redeem code is added to a code discount. Requires the `read_discounts` scope. + /// + DISCOUNTS_REDEEMCODE_ADDED, + /// + ///The webhook topic for `discounts/redeemcode_removed` events. Occurs whenever a redeem code on a code discount is deleted. Requires the `read_discounts` scope. + /// + DISCOUNTS_REDEEMCODE_REMOVED, } /// diff --git a/ShopifySharp/Services/ShopifyService.cs b/ShopifySharp/Services/ShopifyService.cs index 4f25b7e5..22d28ef5 100644 --- a/ShopifySharp/Services/ShopifyService.cs +++ b/ShopifySharp/Services/ShopifyService.cs @@ -20,7 +20,7 @@ public abstract class ShopifyService : IShopifyService { #nullable enable - public virtual string APIVersion => "2023-07"; + public virtual string APIVersion => "2024-01"; public virtual bool SupportsAPIVersioning => true; protected Uri _ShopUri { get; set; } diff --git a/ShopifySharp/ShopifySharp.csproj b/ShopifySharp/ShopifySharp.csproj index 3f11d587..e5da9d6b 100644 --- a/ShopifySharp/ShopifySharp.csproj +++ b/ShopifySharp/ShopifySharp.csproj @@ -3,7 +3,7 @@ net6.0;net7.0;netstandard2.0;net8.0 ShopifySharp ShopifySharp - 6.12.0 + 7.0.0 true snupkg Latest